package com.ansion.constant;

import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
import androidx.annotation.StringDef;


/***
 * @author john 2022/03/22
 * @desc 按照业务进行分组
 */
public class BConstant {

    public static class CustomItem {
        public static String ITEM_WEB_LOGIN = "item.webLogin";
        public static String ITEM_RATE = "item.rate";
        public static String ITEM_TIPS = "item.tips";
        public static String ITEM_MIGRATION = "item.migration";
        public static String ACTION_REFRESH_CHATS_TAB_LIST = "action_refresh_chats_tab_list";
        //explore页的最近通话栏目
        public static String ITEM_RECENT_P2P_CALLS = "item.recent.calls.p2p";
    }


    public static class DeviceToken {
        //server需要注入
        public static String server = "https://sp.botim.me/udid/m1";
        public static String appId = "25776c738f85e04280596fd42f57495b";
        public static String appSec = "b44c4a4df2a7fa1cdb77b17a50e7792e";
        public static int retryCount = 3;//重试次数
        public static int timeOut = 5;//超时时间，单位是秒
        public static String HTTP_PARAM_NAME = "x-fingerprint-token";
    }

    public static class CaptchaToken {
        public static String HTTP_PARAM_NAME = "x-captcha-info";
        public static String TOKEN = "token";
        public static String TYPE = "type";
        public static String CAPTCHA_GOOGLE_RECAPTCHA = "GOOGLE_RECAPTCHA";
    }

    public static class PageChangeNotifyKey {
        public static String KEY_MAIN_TAB = "key_main_tab";
    }

    public static class Fresco {
        public static int defaultAvatarSize = 200;

    }

    public static class Debug {
        public static String TRACK_KEY_APP_DEBUG = "kAppDebug";
        public static String APP_DEBUG_CODE = "errorCode";
        //几乎没人遇到
        public static String CODE_LOAD_SECURITY_SDK_ERROR = "1";
        // 几乎没人遇到
        public static String CODE_MMKV_ERROR = "2";
        // 有300多人遇到
        public static String CODE_KEYSTROE_ERROR = "3";
        public static String CODE_DEVICE_TOKEN_ERROR = "4";
        public static String CODE_XLOG_LOAD_ERROR = "5";

        public static String CODE_PUSH_NODE_ERROR = "6";

        //使用老的文件中加载用户信息
        public static String CODE_LOGIN_FROM_FILE_ERROR = "7";

        // 更新服务器时间错误  ServerTime.update()
        public static String CODE_UPDATE_SERVER_TIME_ERROR = "8";
        // 获取服务器时间错误  ServerTime.getServerTimeMillisecond()
        public static String CODE_GET_SERVER_TIME_ERROR = "9";
        public static String CODE_MMKV_ENABLE_CHANGED = "10";


        public static String CODE_E2EE_CREATE_CHANNEL_ERROR = "20";
        public static String CODE_E2EE_ENCRYPT_ERROR = "21";
    }

    public static class DynamicFeature {
        public static String FEATURE_PAYBY = "module_payby";
    }

    public static class App {
        public static String MAIN_TAB_FROM = "main_tab_from";
        public static String MAIN_TAB_FROM_THIRD_ADS = "main_tab_from_third_ads";
        public static final String KEY_CLEAR_TOP = "clearTop";

        public static int EXPLORE_THEME_1 = 1; // 1代表原来的 uae 样式

        public static String HANDLER_TYPE = "HANDLER_TYPE";
        public static String HANDLER_INTERCEPT = "INTERCEPT";
        public static String HANDLER_CGI_OLD = "CGIOLD";


        public static final String ICON_SOMANEWS = "ICON_SOMANEWS";
        public static final String LANDING_MODE_DEFAULT = "default";//默认是 default 不干预
        public static final String LANDING_MODE_OPENURL = "openurl";//打开url
        public static final int LANDING_INTERVAL_COLD_START = -1;//冷启动处理

        public static final String TAB_CALLS = "calls";
        public static final String TAB_CHATS = "chats";
        public static final String TAB_EXPLORE = "explore";
        public static final String TAB_CONTACTS = "contacts";
        public static final String TAB_ME = "me";

        //文件上传下载超时时间:3分钟，单位:秒
        public static final int NET_FILE_TIMEOUT = 3 * 60;
        public static final String GOOGLE = "google";
        public static final String HUAWEI = "huawei";
        public static final String UPGRADE_TYPE_FORCE_UPGRADE = "2";
        public static volatile boolean USE_NEW_NOTIFICATION = true;

        public static final int SESSION_TWO_TABS = 0;
        public static final int SESSION_SINGLE_TAB = 1;
        public static String EXCEPTION_STORAGE_CACHE = "exception.storage.cache";

        public static final String NAVIGATION_ACTION = "navigation_action";
        public static final String MENU_ITEM_TAG_WALLET = "MENU_ITEM_TAG_WALLET";
        public static final String MENU_ITEM_TAG_LAYOUT = "MENU_ITEM_TAG_LAYOUT";
        public static final String MENU_ITEM_TAG_PLUS_SCAN = "MENU_ITEM_TAG_PLUS_SCAN";

        public static final int TAB_CALLS_POSITION = 0;
        public static final int TAB_CHATS_POSITION = 1;
        public static final int TAB_EXPLORE_POSITION = 2;
        public static final int TAB_CONTACTS_POSITION = 3;
        public static final int TAB_ME_POSITION = 4;

        public static final int NO_LEGACY_POPUP_DELAY = -2;
    }

    public static class ZUS {
        // Passcode serviceName
        public static String PASSCODE_SERVICE_NAME = "accountproxy.";
        // Passcode method Name
        public static String OPEN_PASSCODE = PASSCODE_SERVICE_NAME + "openPassCode";
        public static String CLOSE_PASSCODE = PASSCODE_SERVICE_NAME + "closePassCode";
        public static String GET_PASSCODE_SWITCH_STATUS = PASSCODE_SERVICE_NAME + "getPassCodeSwitchStatus";
        // TrustedDevice method Name
        public static String GET_TRUSTED_DEVICE_EXPIRE_SELECTIONS = PASSCODE_SERVICE_NAME + "getTrustedDeviceExpireSelections";
        public static String UPDATE_TRUSTED_DEVICE_EXPIRE = PASSCODE_SERVICE_NAME + "updateTrustedDeviceExpire";
        public static String REMOVE_TRUSTED_DEVICE = PASSCODE_SERVICE_NAME + "removeTrustedDevice";
        public static String REMOVE_ALL_OTHER_TRUSTED_DEVICE = PASSCODE_SERVICE_NAME + "removeAllOtherTrustedDevices";
        public static String ADD_TRUSTED_DEVICE = PASSCODE_SERVICE_NAME + "addTrustedDevice";
        public static String GET_CURRENT_DEVICE_INFO = PASSCODE_SERVICE_NAME + "getCurrentDeviceInfo";
        public static String GET_TRUSTED_DEVICES = PASSCODE_SERVICE_NAME + "getTrustedDevices";
        public static String GET_CURRENT_AND_TRUSTED_DEVICES = PASSCODE_SERVICE_NAME + "getCurrentAndTrustedDevices";
        // 进入迁移页面
        public static String OPEN_CLIENT_MIGRATION = PASSCODE_SERVICE_NAME + "openClientMigration";
        // 退出迁移页面
        public static String CLOSE_CLIENT_MIGRATION = PASSCODE_SERVICE_NAME + "closeClientMigration";
        public static String CHECK_EMAIL_AUTH_CODE = PASSCODE_SERVICE_NAME + "checkEmailAuthCode";
        public static String EMAIL_AUTH_CODE = PASSCODE_SERVICE_NAME + "emailAuthCode";
        public static String UPDATE_EMAIL = PASSCODE_SERVICE_NAME + "updateEmail";
        public static String UPDATE_WALLET_SETTING = PASSCODE_SERVICE_NAME + "updateWalletSetting";
        public static String UPDATE_NAME = PASSCODE_SERVICE_NAME + "updateName";
        public static String OPRATION_PERMISSIONS = PASSCODE_SERVICE_NAME + "operationPermissions";
        public static String GET_PERMISSIONS = PASSCODE_SERVICE_NAME + "getPermissions";
        public static String UPDATE_DEVICE_TOKEN = PASSCODE_SERVICE_NAME + "updateDeviceToken";
        public static String UPDATE_ANDROID_SYSTEM_PUSH_TOKEN = PASSCODE_SERVICE_NAME + "updateAndroidSystemPushToken";
        public static String BABA_ACCOUNT_LOGOUT = PASSCODE_SERVICE_NAME + "BabaAccountLogout";
        public static String GET_SIMPLE_BABA_ACCOUNT_LIST = PASSCODE_SERVICE_NAME + "getSimpleBabaAccountList";
        public static String GET_BABA_ACCOUNTPB_FRIEND = PASSCODE_SERVICE_NAME + "getBabaAccountPBFriend";
        public static String UPDATE_ALERT = PASSCODE_SERVICE_NAME + "updateAlert";
        public static String UPDATE_VIBRATE = PASSCODE_SERVICE_NAME + "updateVibrate";
        public static String UPDATE_FRIEND_NOTIFY_OPTION = PASSCODE_SERVICE_NAME + "updateFriendNotifyOption";
        public static String UPDATE_PREVIEW = PASSCODE_SERVICE_NAME + "updatePreview";
        public static String UPDATE_AVATAR = PASSCODE_SERVICE_NAME + "updateAvatar";
        public static String UPDATE_WHATS_UP = PASSCODE_SERVICE_NAME + "updateWhatsUp";
        public static String UPDATE_LASTSEEN_PRIVACY = PASSCODE_SERVICE_NAME + "updateLastSeenPrivacy";
        public static String UPDATE_PROFILEPHOTO_PRIVACY = PASSCODE_SERVICE_NAME + "updateProfilePhotoPrivacy";
        public static String UPDATE_PROFILESTATUS_PRIVACY = PASSCODE_SERVICE_NAME + "updateProfileStatusPrivacy";
        public static String UPDATE_AUTO_SAVE_GALLERY = PASSCODE_SERVICE_NAME + "updateAutoSaveGallery";
        public static String UPDATE_HAVE_READ_PRIVACY = PASSCODE_SERVICE_NAME + "updateHaveReadPrivacy";
        public static String DELETE_ACCOUNT_WITH_PHONE_CHECK = PASSCODE_SERVICE_NAME + "deleteAccountWithPhoneCheck";
        public static String UPDATE_AUTO_DOWNLOAD_OPTION = PASSCODE_SERVICE_NAME + "updateAutodownloadOption";
        public static String RESET_AUTO_DOWNLOAD_OPTION = PASSCODE_SERVICE_NAME + "resetAutodownloadOption";
        public static String ADD_GROUP_TO_FAVORITE = PASSCODE_SERVICE_NAME + "addGroupToFavorite";
        public static String REMOVE_GROUP_FROM_FAVORITE = PASSCODE_SERVICE_NAME + "removeGroupFromFavorite";
        public static String CHECK_DELETE = PASSCODE_SERVICE_NAME + "checkDelete";
        public static String MORE_BUY_ZUS = "morebuyzus.";
        public static String OP_SETTING = MORE_BUY_ZUS + "opSetting";
        public static String GET_VIP_SETTING = MORE_BUY_ZUS + "obtainVipSetting";

        public static String GRPPROXY = "grpproxy.";
        public static String GET_GROUP_INFO = GRPPROXY + "getGroupInfo";
        public static String CREATE_GROUP = GRPPROXY + "createGroup";
        public static String ADD_GROUP_USER = GRPPROXY + "addGroupUser";
        public static String REMOVE_USER = GRPPROXY + "removeUser";
        public static String GROUP_RENAME = GRPPROXY + "groupRename";
        public static String UPDATE_GROUP_DESC = GRPPROXY + "updateGroupDesc";
        public static String GROUP_SET_MANAGER = GRPPROXY + "setManager";
        public static String GROUP_CANCEL_MANAGER = GRPPROXY + "cancelManager";
        public static String UPDATE_GROUP_AVATAR = GRPPROXY + "updateGroupAvatar";
        public static String GET_GROUP_SHARE_LINK = GRPPROXY + "getGroupShareLink";
        public static String QUERY_GROUP_SHARE_LINK = GRPPROXY + "queryGroupShareLink";
        public static String REVOKE_GROUP_SHARE_LINK = GRPPROXY + "revokeGroupShareLink";
        public static String ADD_GROUP_USER_BY_SHARE_LINK = GRPPROXY + "addGroupUserByShareLink";
        // contact
        public static String GET_MATCH_USERS = "friendsproxy.getMatchUsers";
        // 获取地图静态图
        public static String MAP_GET_STATIC_IMAGE = "locationproxy.getStaticImage2";
        // 获取经纬度对应的基本位置信息
        public static String MAP_GET_LOCATION_INFO = "locationproxy.getLocationInfo";
        // Notification ack track
        public static String PUSH_BATCH_NOTIFY_DELIVERED = "pushproxy.pushBatchNotifyDelivered";
        // 低精度地图
        public static String GET_INTEREST_POINT = "locationproxy.getInterestPoint";
        // 高精度地图，用于小程序调用
        public static String GET_INTEREST_POINT_V2 = "locationproxy.getInterestPointV2";
        // Landing Page Get All Data
        public static String LANDING_PAGE_GET_DATA = "explorezusservice.getLandingPageData";
        // Landing Page Delete Item
        public static String LANDING_PAGE_DELETE_ITEM = "explorezusservice.delLandingPageItem";
        public static String GET_LOCALIZED_CAMPAIGN_CONFIG = "explorezusservice.getLocalizedCampaignConfig";


        // steps
        public static String STEPS_UPLOAD_MULTI = "stepszus.uploadMultiDaySteps";
        public static String STEPS_ENABLE = "stepszus.enableSteps";
        public static String STEPS_DISABLE = "stepszus.disableSteps";
        public static String STEPS_SET_SOURCE = "stepszus.setStepsSource";
        public static String STEPS_GET_MP_URL = "stepszus.getMiniProgram";
    }

    public static class Adjust {
        public static String BP_TABLE_NAME = "bp_adjust";
    }

    public static class Passcode {
        public static int USER_MODULE_NEVER = 0;   // 从未设置过Passcode
        public static int USER_MODULE_DONE = 1;    // 已经设置完毕Passcode
        public static int USER_MODULE_BEFORE = 2;  // 曾经设置过Passcode

        public static long COOL_DOWN_1_DAY = 24 * 60 * 60 * 1000;
        public static long COOL_DOWN_7_DAY = 7 * COOL_DOWN_1_DAY;
        public static long COOL_DOWN_100_DAY = 100 * COOL_DOWN_1_DAY;

        public static String SOMA_KEY_SKIP_INTERVAL = "skipInterval";
        public static String SOMA_KEY_DISMISS_INTERVAL = "dismissInterval";

        public static String BP_TABLE_NAME = "passcode";
        public static String BP_KEY_LAST_TIME = "passcode_save_guide_page_last_show_time_key";
        public static String BP_KEY_USER_MODULE = "passcode_user_module_key";
        public static String BP_KEY_IS_DEVICE_TRUSTED = "is_trusted_device_key";
        public static String BP_KEY_GUIDE_PAGE_CLOSE_TYPE = "guide_page_close_type";
        // 登陆成功后，服务端会返回 constDevid, 用于后续信任设备接口调用传入
        public static String BP_KEY_CONST_DEV_ID = "const_device_id";

        public static int GUIDE_PAGE_CLOSE_TYPE_BY_DEFAULT = 1;    // 点击 X 关闭
        public static int GUIDE_PAGE_CLOSE_TYPE_BY_REMIND = 2;  // 点击 remind me 关闭

        public static int PASSCODE_REQUEST_CODE = 520;
        public static int PASSCODE_GUIDE_PAGE_REQUEST_CODE = 521;
        public static int ERROR_CODE_TRUSTED_DEVICES_NUM_LIMIT = 4024;

        public static String INTENT_DEVICE_INFO = "device_info";
        public static String INTENT_CURRENT_DEVICE = "current_device";
        public static String INTENT_REMIND_ME = "remind_me";
        public static String INTENT_AUTH_CODE_METHOD_MESSAGE = "MESSAGE";
        public static String INTENT_AUTH_CODE_METHOD_SMS = "SMS";
        public static String INTENT_FROM_GUIDE_PAGE = "from_guide_page";

        public static String LOGIN_MODE_PASSCODE_AUTHMESSAGE = "PASSCODE_AUTHMESSAGE";
        public static String LOGIN_MODE_PASSCODE_AUTHSMS = "PASSCODE_AUTHSMS";
        public static String LOGIN_MODE_AUTH_MESSAGE = "AUTH_MESSAGE";
        public static String LOGIN_MODE_AUTH_SMS = "AUTH_SMS";

    }

    public interface GROUP_CALL_STATE {
        int STATE_MISSED = 0;//未接通
        int STATE_CANCELLED = 1;//取消
        int STATE_ACCEPTED = 3;//接通
        int STATE_CALL_DECLINED = 4;//已拒绝
        int STATE_DECLINED = 5;//已挂断
        int STATE_NOANSWER = 6;//主叫，其他人都超时
    }

    public static class SettingChat {
        public static String ENTER_KEY_ACTION_TO_SEND_SWITCH = "enter_key_action_to_send_switch";
        public static int SETTING_EMAIL_TYPE_UPDATE = 1;
        public static int SETTING_EMAIL_TYPE_VERIFY = 2;
        public static String SETTING_EXTRA_KEY_EMAIL = "extra_key_email";
        public static String SETTING_EXTRA_KEY_TYPE = "extra_key_type";
        public static String SETTING_EXTRA_KEY_EID = "extra_key_eid";
        public static int SETTING_REQUEST_CODE_EMAIL = 1001;
        public static int SETTING_REQUEST_CODE_UAE_PASS = 1002;

        public static String URL_UAE_PASS = "https://botim.me/mp/b/?app=me.botim.function.uaepassapp";
        public static String URL_DELIVERY_ADDRESS = "https://botim.me/mp/b/?app=me.botim.function.addressmanager";
        public static String URL_FAQ_CHANGE_PHONE_NUMBER = "https://botim.me/mp/b/?app=me.botim.function.faq%2Ffaq%2Fchange-mobile-number.html";
    }

    public interface FootPrint {
        String FOOT_PRINT_V2 = "foot_print_v2";

        String kPaybyEvent = "kPaybyEvent";
        String kMPEntry = "kMPEntry";
        String kAPPFatal = "kAPPFatal";
        String kAppPerformance = "kAppPerformance";

        String kMPH5 = "kMPH5";
        String kMPCVR = "kMPCVR";
        String kUITrack = "kUITrack";

        String EVENT = "event";
        String WHEN = "when";
        String REASON = "reason";
        String EXT = "ext";
        String PAYLOAD = "payload";

        // login foot print
        String kVerifyCodeSuc = "kVerifyCodeSuc";
        // 进入登录首页
        String kLoginHomepage = "kLoginHomepage";
        // 点击Start Calling
        String kStartCalling = "kStartCalling";
        // 进入手机号输入页面
        String kPhoneNumber = "kPhoneNumber";
        // 点击手机号输入页Next
        String kPhoneNext = "kPhoneNext";
        // 点击手机号输入页Migrate
        String kLoginMigrate = "kLoginMigrate";
        // 点击手机号确认Continue
        String kNumberContinue = "kNumberContinue";
        // 点击手机号确认Edit
        String kNumberEdit = "kNumberEdit";
        // 进入SMS验证码页面
        String kVerifySMS = "kVerifySMS";
        // SMS验证成功
        String kVerifySMSSuc = "kVerifySMSSuc";
        // SMS验证失败
        String kVerifySMSFail = "kVerifySMSFail";
        // SMS重试获取
        String kSMSResend = "kSMSResend";
        // 进入BOTIM Message验证码页面
        String kVerifyBotimMsg = "kVerifyBotimMsg";
        // BOTIM Message验证成功
        String kVerifyBotimMsgSuc = "kVerifyBotimMsgSuc";
        // BOTIM Message验证失败
        String kVerifyBotimMsgFail = "kVerifyBotimMsgFail";
        // BOTIM Message切换到SMS
        String kVerifySMSBotimMsg = "kVerifySMSBotimMsg";
        // 进入Passcode验证页面
        String kVerifyPasscode = "kVerifyPasscode";
        // Passcode验证成功
        String kVerifyPasscodeSuc = "kVerifyPasscodeSuc";
        // Passcode验证失败
        String kVerifyPasscodeFail = "kVerifyPasscodeFail";
        // Passcode切换到SMS
        String kVerifyPasscodeSMS = "kVerifyPasscodeSMS";
        // 进入到个人信息输入页
        String kRegisYourInfo = "kRegisYourInfo";
        // 上传头像成功
        String kRegisAvatar = "kRegisAvatar";
        // 上传头像失败
        String kRegisAvatarFail = "kRegisAvatarFail";
        // 个人信息页Save
        String KRegisSave = "KRegisSave";

        String KContactUpdate = "kContactUpdate";

        String AttributtionKey = "b_tracking";

        String kOAClick = "kOAClick";

        String kBizMessageClick = "kBizMessageClick";

        String kAPMOpen = "kAPMOpen";

        String kSignupError = "kSignupError";

        public interface OAArguments {
            String CLICK_URL = "click_url";
            String OAID = "oaid";
            String PAGE = "page";
            String TARGET = "target";
            String STATUS = "status";
            String TOOL_BAR = "tool_bar";
            String MENU = "menu";
            String SHOW_MORE = "show_more";
            String SHOW_LESS = "show_less";
            String TOP_SELLER = "top_seller";
            String ENTER_STORE_BM = "enter_store_bm";
            String ENTER_STORE_TS = "enter_store_ts";
            String MUTE_NOTIFICATION = "mute_notification";
            String SUBSCRIBE = "subscribe";
            String SHARE = "share";

            String CHAT = "chat";
            String CHATBOT_PROFILE = "chatbot_profile";

            String OPEN = "1";
            String CLOSE = "0";
        }


        public interface AppFetalArgument {
            String REASON = "reason";

            String EXT = "ext";

            String STACK = "stack";

            String ErrorMessage = "errorMessage";

            String CODE = "code";
        }

        interface E2EEArguments {
            String NetworkState = "networkState";
            String Source = "source";
            String Method = "method";
            String ErrorCode = "errorCode";
            String Channel = "channel";
            String DeviceId = "deviceId";
            String DeviceIds = "deviceIds";
            String MsgId = "msgId";
            String PBType = "pbType";
            String RoomId = "roomId";
            String FromId = "fromId";
            String ToId = "toId";
            String Uid = "uid";
            String Count = "count";

            String CallState = "callState";
            String PushChannel = "pushChannel";
            String Duration = "duration";
            String LastUploadKeyTime = "lastUploadKeyTime";
            String FileSize = "fileSize";
            String FilePBSize = "filePBSize";
            String FileUrl = "fileUrl";
            String AesKeyLen = "aesKeyLen";
            String IdentityKeyId = "identityKeyId";
            String IdentityKey = "identityKey";
            String PreKey = "preKey";
            String PreKeyId = "preKeyId";
            String SignedPreKey = "signedPreKey";
            String SignedPreKeyId = "signedPreKeyId";
            String Signature = "signature";
            String DeviceKey = "deviceKey";
            String DeviceKeySignature = "deviceKeySignature";
            String SlaveKeySignature = "slaveKeySignature";


        }

        interface E2EE {
            String TRACK_EVENT_NAME = "e2ee";
            String REASON_Key_Upload_Fail = "key_upload_fail";
            String REASON_ProcessKeyBundleFail = "process_bundle_failed";
            String REASON_Get_Key_Fail = "get_key_failed";
            String REASON_EncryptFail_Message = "encrypt_message_failed";
            String REASON_Key_Generation_fail = "key_generation_failed";
            String REASON_Key_Version_Change = "key_version_change";
            String REASON_Key_Change = "key_change";
            String REASON_Rend_Limit_Reached = "resend_limit_reached";

            String REASON_DecryptFail_Message = "decrypt_message_failed";
            String REASON_DecryptFail_Ping = "decrypt_ping_failed";
            String REASON_DecryptFail_Call = "decrypt_call_failed";

            String REASON_DecryptFile_Fail = "decrypt_file_fail";

            String REASON_Message_Slow_Save = "msg_slow_save";
            String REASON_Receive_UnEncrypt_File = "RecvUnEncryptFile";
            String REASON_Key_Store_Error = "key_store_failed";
            String REASON_SDK_Init_Fail = "sdk_init_failed";

        }

        interface BotApmArguments {
            String kAPMOpenBackground = "background";
            String kAPMOpenLandingUrl = "landingUrl";
            String kAPMOpenCrashInfo = "crashInfo";
            String kAPMOpenStartDuration = "startDuration";
        }


        interface Login {
            String WHEN_LoginHomepageCheckSendAuthCodeType = "kLoginHomepageCheckSendAuthCodeType";
            String WHEN_LoginHomepageSendAuthCode = "kLoginHomepageSendAuthCode";
            String WHEN_PhoneNext = "kPhoneNext";
            String WHEN_InputPhoneSendAuthCode = "kInputPhoneSendAuthCode";
            String WHEN_NumberContinue = "kNumberContinue";
            String WHEN_PhoneNextUploadKey = "kPhoneNextUploadKey";
            String WHEN_InputPhonePage = "kInputPhonePage";
            String WHEN_VerifyPasscode = "kVerifyPasscode";
            String WHEN_InputPasscodeSendAuthCode = "kInputPasscodeSendAuthCode";//only iOS side has this key
            String WHEN_VerifyPasscodeUploadKey = "kVerifyPasscodeUploadKey";
            String WHEN_InputPasscodePage = "kInputPasscodePage";
            String WHEN_VerifySMS = "kVerifySMS";
            String WHEN_VerifyBotimMsg = "kVerifyBotimMsg";
            String WHEN_VerifyPhoneSendAuthCode = "kVerifyPhoneSendAuthCode";
            String WHEN_VerifySMSUploadKey = "kVerifySMSUploadKey";
            String WHEN_VerifyBotimMsgUploadKey = "kVerifyBotimMsgUploadKey";
            String WHEN_VerifySMSPage = "kVerifySMSPage";
            String WHEN_VerifyBotimMsgPage = "kVerifyBotimMsgPage";
            String WHEN_kLoginHomeSwitchVideo = "kLoginHomeSwitchVideo";
            String WHEN_kClickPhoneNumberBackBtn = "kClickPhoneNumberBackBtn";
            String WHEN_kClickPhoneNumberTerms = "kClickPhoneNumberTerms";
            String WHEN_kPhoneSignupSelectCountry = "kPhoneSignupSelectCountry";
            String WHEN_kDelAccountSelectCountry = "kDelAccountSelectCountry";
            String WHEN_kClickOPTBackBtn = "kClickOPTBackBtn";
            String WHEN_kClickUploadAvatar = "kClickUploadAvatar";
            String WHEN_kClickRegisNameNextBtn = "kClickRegisNameNextBtn";
            String WHEN_kClickPermissionSkipBtn = "kClickPermissionSkipBtn";
            String WHEN_kClickPermissionNextBtn = "kClickPermissionNextBtn";
            String WHEN_kPermissionApproval = "kPermissionApproval";
            String WHEN_kSubmitServices = "kSubmitServices";
            String REASON_NETWORK_NOT_REACHABLE = "Network is NotReachable";


            int ERROR_CODE_TIME_OUT = 1001;


        }

        interface LoginArguments {
            String UserType = "userType";
            String Video = "video";
            String Term = "term";
            String OptType = "optType";
            String Permission = "permission";
            String Service = "service";
            String CountryCode = "countryCode";
        }

        interface Search {
            String TRACK_EVENT_NAME = "search";
            String Key_App_Performance_Msg = "msg";
            String Key_App_Performance_Session_Count = "session_count";
            String Key_App_Performance_Contact = "contact";
            String Key_App_Performance_ChatList = "chatList";
            String Key_App_Performance_RecentList = "recentList";
            String Key_App_Performance_GroupList = "groupList";
            String Key_App_Performance_GroupMemberList = "groupMemberList";
            String Key_App_Performance_OaList = "oaList";
            String Key_App_Performance_MpList = "mpList";
            String Key_App_Performance_StoreList = "storeList";
            String Key_App_Performance_P2pCallLog = "p2pCallLog";
            String Key_App_Performance_GroupCallLog = "groupCallLog";
            String Key_App_Performance_PreviewCallLog = "previewCallLog";
            String Key_App_Performance_ServiceExtra = "serviceExtra";
            String Key_App_Performance_AllServiceList = "allServiceList";
            String Key_App_Performance_All = "total";
            String Key_Error_Reason_Index_User_Fail = "index_user_fail";
            String Key_Error_Reason_Index_GroupMember_Fail = "index_group_member_fail";
            String Key_Error_Reason_Index_Message_Fail = "index_message_fail";
        }

        interface LandingPage {
            String When_kLandingPage = "kLandingPage";
            String When_kTutorialStep = "kTutorialStep";
            String Event_Display = "Display";
            String Event_Click = "Click";
            String Event_Close = "Close";
            String Action_Skip = "Skip";
            String Action_Next = "Next";
            String Action_Finish = "Finish";
            String Action_Completed = "Completed";
            String Tag_New = "New";
            String Tag_Hot = "Hot";

            String Key_MP_Name = "mpName";
            String Key_MP_Name_Tag = "mpNameTag";
            String Key_Event = "event";
            String Key_Tutorial_Action = "tutorialAction";
            String Key_Action = "action";
            String Key_LP_Id = "lpId";
            String Key_Tutorial_Des = "tutorialDes";
            String Key_Button_Name = "buttonName";
        }

        interface PrivacyPage {
            String When_Privacy_Crm_Click = "Privacy_Crm_Click";
            String When_Privacy_Page_Entry = "Privacy_Page_Entry";
            String When_Privacy_Groups_Click = "Privacy_Groups_Click";
            String When_Privacy_Calls_Click = "Privacy_Calls_Click";
            String When_Groups_Everyone_Click = "Groups_Everyone_Click";
            String When_Groups_My_Contacts_Click = "Groups_My_Contacts_Click";
            String When_Groups_Contacts_Except_Click = "Groups_Contacts_Except_Click";
            String When_Groups_Confirm_Contacts_Click = "Groups_Confirm_Contacts_Click";
            String When_Calls_Everyone_Click = "Calls_Everyone_Click";
            String When_Calls_My_Contacts_Click = "Calls_My_Contacts_Click";
            String When_Calls_Contacts_Except_Click = "Calls_Contacts_Except_Click";
            String When_Calls_Confirm_Contacts_Click = "Calls_Confirm_Contacts_Click";
            String When_Not_In_Contacts_View = "Not_In_Contacts_View";
            String When_Privacy_Click_Not_In_Contacts = "Privacy_Click_Not_In_Contacts";
            String When_Stay_Click_Not_In_Contacts = "Stay_Click_Not_In_Contacts";
            String When_Leave_Click_Not_In_Contacts = "Leave_Click_Not_In_Contacts";
            String When_Failed_Add_View = "Failed_Add_View";
            String When_Failed_Add_Send_Invitation_Click = "Failed_Add_Send_Invitation_Click";
            String When_Failed_Add_Cancel_Click = "Failed_Add_Cancel_Click";
            String Failed_Call_View = "Failed_Call_View";
            String Failed_Call_Go_Chat_Click = "Failed_Call_Go_Chat_Click";
            String Failed_Call_Cancel_Click = "Failed_Call_Cancel_Click";
            String Failed_Call_Some_Contacts_View = "Failed_Call_Some_Contacts_View";
            String Failed_Call_Contacts_Continue_Click = "Failed_Call_Contacts_Continue_Click";
            String Failed_Call_Contacts_Cancel_Click = "Failed_Call_Contacts_Cancel_Click";
            String Failed_Call_Group_View = "Failed_Call_Group_View ";
            String Failed_Call_Group_Okay_Click = "Failed_Call_Group_Okay_Click";


        }
    }

    public static class Usage {
        public static final int INIT_FROM_LOGIN = 600;
        public static final int INIT_FROM_APP_USAGE = 601;

        public static final int TRACK_MODE_ZERO = 523;
        public static final int TRACK_MODE_INTERVAL = 524;

        public static final int INIT_MODE_NEVER = 0;
        public static final int INIT_MODE_OVER_INTERVAL = 1;
        public static final int INIT_MODE_IN_INTERVAL = 2;
        public static final int INIT_MODE_FINISH = 3;

        public static String BP_TABLE_NAME = "TableNameAppUsage";
        public static String BP_LAST_TRACK_TIME = "bp_key_usage_last_track_time";
        public static String BP_LAST_APP_FOREGROUND_TIME = "bp_key_usage_last_app_foreground_time";
        public static String BP_LAST_EXPLORE_TIME = "bp_key_usage_last_explore_time";
        public static String BP_LAST_EXPLORE_INVISIBLE_TIME = "bp_key_usage_last_explore_invisible_time";
        public static String BP_TRACK_INFO_OPEN = "bp_key_usage_track_info_open";
        public static String BP_TRACK_INFO_DURATION = "bp_key_usage_track_info_duration";
        public static String BP_TRACK_INFO_UPLOAD = "bp_key_usage_track_info_upload";
        public static String BP_TRACK_INFO_DOWNLOAD = "bp_key_usage_track_info_download";
        public static String BP_TRACK_INFO_ITEM = "bp_key_usage_track_info_user_action";

        public static String TRACK_KEY = "kAppUsage";
        public static String TRACK_K_APP_USAGE = "kAppUsage";
        public static String TRACK_K_EXPLORE_USAGE = "kExploreUsage";

        public static String TRACK_KEY_OPEN = "open";
        public static String TRACK_KEY_DURATION = "duration";
        public static String TRACK_KEY_UPLOAD = "upload";
        public static String TRACK_KEY_DOWNLOAD = "download";
        public static String TRACK_KEY_P_FLAG = "pflag";
        public static String TRACK_KEY_ITEM = "userAction";

        public static String TRACK_CHAT_FAILURE = "ChatFailure";
        public static String TRACK_CHAT_FAILURE_TEXT = "_Text";
        public static String TRACK_CHAT_FAILURE_AUDIO = "_Audio";
        public static String TRACK_CHAT_FAILURE_IMAGE = "_Image";
        public static String TRACK_CHAT_FAILURE_VIDEO = "_Video";
        public static String TRACK_CHAT_FAILURE_OTHERS = "_Others";


        public static String TRACK_PARAM_PAGE = "page_";
        public static String TRACK_PARAM_CALL = "call";
        public static String TRACK_PARAM_SESSION = "session";
        public static String TRACK_PARAM_EXPLORE = "explore";
        public static String TRACK_PARAM_CONTACT = "contact";
        public static String TRACK_PARAM_ME = "me";
        public static String TRACK_PARAM_SESSION_DETAIL = "sessionDetail";
        public static String TRACK_PARAM_GROUP_SESSION_DETAIL = "groupSessionDetail";
        public static String TRACK_PARAM_ACTION_SEARCH = "_search";
        public static String TRACK_PARAM_ACTION_MP_ALL_SERVICE = "_mpAllServices";
        public static String TRACK_PARAM_ACTION_NEW_MESSAGE = "_newMessage";
        public static String TRACK_PARAM_ACTION_NEW_CALL = "_newCall";
        public static String TRACK_PARAM_ACTION_PAYMENT = "_payment";
        public static String TRACK_PARAM_ACTION_NEW_GROUP_CALL = "_newGroupCall";
        public static String TRACK_PARAM_ACTION_NEW_GROUP_CHAT = "_newGroupChat";
        public static String TRACK_PARAM_ACTION_ADD_CONTACTS = "_addContacts";
        public static String TRACK_PARAM_ACTION_SCAN_QR_CODE = "_scanQRCode";
        public static String TRACK_PARAM_ACTION_TELL_FRIEND = "_tellAFriend";
        public static String TRACK_PARAM_ACTION_TELL_FRIEND_MSG = "_tellAFriendMsg";
        public static String TRACK_PARAM_ACTION_TELL_FRIEND_WHATSAPP = "_tellAFriendWhatsApp";
        public static String TRACK_PARAM_ACTION_TELL_FRIEND_COPY = "_tellAFriendCopy";
        public static String TRACK_PARAM_ACTION_TELL_FRIEND_MORE = "_tellAFriendMore";
        public static String TRACK_PARAM_ACTION_EMOJI = "_emoji";
        public static String TRACK_PARAM_ACTION_ATTACH = "_attach";
        public static String TRACK_PARAM_ACTION_VOICE = "_voice";
        public static String TRACK_PARAM_ACTION_CAMERA = "_camera";
        public static String TRACK_PARAM_ACTION_MENU_CAMERA = "_menuCamera";
        public static String TRACK_PARAM_ACTION_MENU_GALLERY = "_menuGallery";
        public static String TRACK_PARAM_ACTION_MENU_LOCATION = "_menuLocation";
        public static String TRACK_PARAM_ACTION_MENU_CONTACT = "_menuContact";
        public static String TRACK_PARAM_ACTION_MENU_FILE = "_menuFile";
        public static String TRACK_PARAM_ACTION_MENU_CASH_GIFT = "_menuCashGift";
        public static String TRACK_PARAM_ACTION_MENU_TRANSFER = "_menuTransfer";
        public static String TRACK_PARAM_ACTION_MENU_ACCOUNT_DETAILS = "_menuAccountDetails";
        public static String TRACK_PARAM_MAIN_TAB_CALL = "mainTab_call";
        public static String TRACK_PARAM_MAIN_TAB_SESSION = "mainTab_session";
        public static String TRACK_PARAM_SESSION_TAB_CHAT = "session_chats";
        public static String TRACK_PARAM_SESSION_TAB_OA = "session_OA";
        public static String TRACK_PARAM_MAIN_TAB_EXPLORE = "mainTab_explore";
        public static String TRACK_PARAM_MAIN_TAB_CONTACT = "mainTab_contact";
        public static String TRACK_PARAM_MAIN_TAB_ME = "mainTab_me";
        public static String TRACK_PARAM_SESSION_MENU = "session_menu";
        public static String TRACK_PARAM_SESSION_MENU_SCAN_QR_CODE = "session_menuScanQRCode";
        public static String TRACK_PARAM_EXPLORE_SCAN_QR_CODE = "explore_scanQRCode";
        public static String TRACK_PARAM_EXPLORE_QR_CODE_PAYMENT = "explore_QRCodePayment";
        public static String TRACK_PARAM_EXPLORE_SEARCH = "explore_search";
        public static String TRACK_PARAM_ME_AVATAR = "me_avatar";
        public static String TRACK_PARAM_ME_QR_CODE = "me_QRcode";
        public static String TRACK_PARAM_ME_WALLET = "me_wallet";
        public static String TRACK_PARAM_ME_ACCOUNT = "me_account";
        public static String TRACK_PARAM_ME_CHATS_CALLS = "me_chats&calls";
        public static String TRACK_PARAM_ME_NOTIFICATION = "me_notification";
        public static String TRACK_PARAM_ME_USAGE = "me_usage";
        public static String TRACK_PARAM_ME_BOTIM_DESKTOP = "me_botimDesktop";
        public static String TRACK_PARAM_ME_ABOUT = "me_about";
        public static String TRACK_PARAM_CONTACTS_INFO_MESSAGE = "contactsInfo_message";
        public static String TRACK_PARAM_CONTACTS_INFO_AUDIO_CALL = "contactsInfo_audioCall";
        public static String TRACK_PARAM_CONTACTS_INFO_VIDEO_CALL = "contactsInfo_videoCall";
        public static String TRACK_PARAM_CONTACTS_INFO_SEARCH_CHAT_HISTORY = "contactsInfo_searchChatHistory";
        public static String TRACK_PARAM_CONTACTS_INFO_MUTE = "contactsInfo_mute";
        public static String TRACK_PARAM_CONTACTS_INFO_MEDIA_LINK = "contactsInfo_mediaLink";
        public static String TRACK_PARAM_CONTACTS_INFO_CUSTOM_NOTIFICATIONS = "contactsInfo_customNotifications";
        public static String TRACK_PARAM_GROUP_INFO_EDIT_GROUP_NAME = "groupInfo_editGroupName";
        public static String TRACK_PARAM_GROUP_INFO_DESCRIPTION = "groupInfo_description";
        public static String TRACK_PARAM_GROUP_INFO_MEDIA_LINK = "groupInfo_mediaLink";
        public static String TRACK_PARAM_GROUP_INFO_SEARCH_CHAT_HISTORY = "groupInfo_searchChatHistory";
        public static String TRACK_PARAM_GROUP_INFO_MUTE = "groupInfo_mute";
        public static String TRACK_PARAM_GROUP_INFO_SAVE_TO_CONTACTS = "groupInfo_saveToContacts";
        public static String TRACK_PARAM_GROUP_INFO_ADD_PARTICIPANTS = "groupInfo_addParticipants";
        public static String TRACK_PARAM_GROUP_INFO_SEARCH_PARTICIPANTS = "groupInfo_searchParticipants";
        public static String TRACK_PARAM_GROUP_INFO_INVITE_VIA_LINK = "groupInfo_InviteViaLink";
        public static String TRACK_PARAM_GROUP_INFO_EXIT_GROUP = "groupInfo_exitGroup";
        public static String TRACK_PARAM_GROUP_INFO_CHANGE_GROUP_AVATAR = "groupInfo_changeGroupAvatar";
        public static String TRACK_PARAM_GROUP_INFO_MENU_ADD_PARTICIPANTS = "groupInfo_menuAddParticipants";
        public static String TRACK_PARAM_GROUP_INFO_CUSTOM_NOTIFICATIONS = "groupInfo_customNotifications";
        public static String TRACK_PARAM_GROUP_SESSION_DETAIL_MENU_GROUP_CALL = "groupSessionDetail_menuGroupCall";
        public static String TRACK_PARAM_LANDING_PAGE = "mainTab_landingPage";
        public static String TRACK_PARAM_LANDING_PAGE_TODO = "landingPageTodo_display_";

        public static String TRACK_PAGE_SEARCH = "search";
        public static String TRACK_PAGE_SEARCH_CONTACTS = "searchContacts";
        public static String TRACK_PAGE_SEARCH_CHATS = "searchChats";
        public static String TRACK_PAGE_SEARCH_GROUP = "searchGroup";
        public static String TRACK_PAGE_SEARCH_OA = "searchOA";
        public static String TRACK_ACTION_INPUT_PAGE = "_inputPage";
        public static String TRACK_ACTION_INPUT_COMPLETED = "_inputCompleted";
        public static String TRACK_ACTION_LEAVE_EMPTY = "_leaveEmpty";
        public static String TRACK_ACTION_LEAVE_NON_EMPTY = "_leaveNonEmpty";
        public static String TRACK_ACTION_CLICK_CHATS = "_clickChats";
        public static String TRACK_ACTION_CLICK_CONTACTS = "_clickContacts";
        public static String TRACK_ACTION_CLICK_GROUP = "_clickGroup";
        public static String TRACK_ACTION_CLICK_OA = "_clickOA_"; // 后面要拼上 oaId

        public static final String CHOOSE_TYPE_PHOTO = "fn_Gallery";
        public static final String CHOOSE_TYPE_CAMERA = "fn_Camera";
        public static final String CHOOSE_TYPE_VIDEO = "fn_Video";
        public static final String CHOOSE_TYPE_LOCATION = "fn_Location";
        public static final String CHOOSE_TYPE_CONTACT = "fn_Contact";
        public static final String CHOOSE_TYPE_FILE = "fn_File";
        public static final String CHOOSE_TYPE_SEND_MONEY = "fn_SendMoney";
        public static final String CHOOSE_TYPE_ACCOUNT_DETAILS = "fn_AccountDetails";
        public static final String CHOOSE_TYPE_CASHGIFT = "fn_CashGift";
        public static final String CHOOSE_TYPE_GROUP_CALL = "fn_GroupCall";

        public static String TRACK_PARAM_CHAT_P2P_SHORTCUT = "ChatP2PShortcut_";
        public static String TRACK_PARAM_CHAT_P2P_CONNECTS = "ChatP2PConnects_";
        public static String TRACK_PARAM_CHAT_GROUP_CONNECTS = "ChatGroupConnects_";


        public static String MODE_KEY_APP = "app_";
        public static String MODE_KEY_EXPLORE = "explore_";

        public static String BUNDLE_KEY_MODE = "mode_key";
        public static String BUNDLE_KEY_INTERVAL = "mode_interval";
        // end call
        public static String TRACK_PAGE_END_CAll = "endCall";
        public static String TRACK_ACTION_BACK = "_back";
        public static String TRACK_ACTION_CLOSE = "_close";
        public static String TRACK_ACTION_MESSAGE = "_message";
        public static String TRACK_ACTION_CALL_QUALITY = "_callQuality";
        public static String TRACK_ACTION_CHATS = "_chats";

        public static String TRACK_PAGE_FLOATY_WINDOW = "chatFloatyWindow";
        public static String TRACK_ACTION_FLOATY_OPEN = "_open";
        public static String TRACK_ACTION_FLOATY_CLOSE = "_close";
        public static String TRACK_ACTION_FLOATY_MOVE = "_move";
        public static String TRACK_ACTION_FLOATY_SHOW = "_show";
        public static String TRACK_ACTION_OA_CLICK = "oa_click_";
        public static String TRACK_ACTION_OA_PIN = "oa_pin_";
        public static String TRACK_ACTION_OA_UNPIN = "oa_unpin_";
        public static String TRACK_BOT_USAGE_SIZE = "bot_usage_size";
        public static String TRACK_TOTAL_USAGE_SIZE = "total_usage_size";
        public static String TRACK_TOTAL_DISK_SIZE = "total_disk_size";

        public static int APP_BACKGROUND = 520;
        public static int APP_FOREGROUND = 521;

        public static String PERMISSION_NO_CONTACTS = "no_contacts";
        public static String PERMISSION_NO_MANAGE_PHONE_CALLS = "no_manage_phone_calls";
        public static final String UPLOAD_IMAGE_COUNT = "uploadImageCount";
        public static final String UPLOAD_IMAGE_TIME = "uploadImageTime";
        public static final String UPLOAD_VIDEO_TIME = "uploadVideoTime";
        public static final String UPLOAD_VIDEO_COUNT = "uploadVideoCount";
        public static final String DOWNLOAD_IMAGE_COUNT = "downloadImageCount";
        public static final String DOWNLOAD_IMAGE_TIME = "downloadImageTime";
        public static final String DOWNLOAD_VIDEO_TIME = "downloadVideoTime";
        public static final String DOWNLOAD_VIDEO_COUNT = "downloadVideoCount";
        public static final String TOTAL_REACTION_MSG = "totalReactionMsg";
        public static final String AVG_REACTION_PER_MSG = "avgReactionPerMsg";
        public static final String HTTP_GET_MSG_LIST_PREFIX = "httpGetMsgList_";
    }

    public static interface Share {
        public static final String FROMPAGE_CHATS = "chats";
        public static final String FROMPAGE_CALLS = "calls";

        public static final String RESULT_INTENT_KEY_SHAREITEM = "shareitem";
        int TYPE_UNKNOWN = -1;
        // 42 小程序卡片
        int TYPE_MP_CARD = 42;
        // 121 events 卡片
        int TYPE_EVENT_CARD = 121;
        // 2 文本
        int TYPE_TEXT = 2;
        // 3 图片
        int TYPE_IMAGE = 3;
        // 28 视频
        int TYPE_VIDEO = 28;
        int SHARE_CONTACT = 0;
        int SHARE_GROUP = 1;
        String KEY_SHAREDATA = "shareData";
        String MP_URL_SHARE_IMSHAREDIALOG = "https://botim.me/mp/b/?app=me.botim.function.imsharedialog";
        String MP_URL_SHARE_MPSHAREDIALOG = "https://botim.me/mp/b/?app=me.botim.function.mpsharedialog";
        String KEY_SHARE_DISABLED = "disabled";
        int DISABLE_SHARE = 1; // 禁用
        int ENABLE_SHARE = 0; // 不禁用
    }

    public static class Contact {
        public static final String KEY_APPCONTACT_ADD = "key_appcontact_add";
        public static final String KEY_APPCONTACT_DEL = "key_appcontact_del";
        public static final String KEY_APPCONTACT_UPDATE = "key_appcontact_update";

        public static final String KEY_CHANGE_RECORD_ADD = "key_change_record_add";
        public static final String KEY_CHANGE_RECORD_DEL = "key_change_record_del";
        public static final String KEY_CHANGE_RECORD_UPDATE = "key_change_record_update";

        public static final String INTENT_KEY_PHONE = "intent_key_contact_phone";
        public static final String INTENT_KEY_NAME = "intent_key_contact_name";

        public static long COOL_DOWN_5_MIN = 5 * 60 * 1000;

        public static int REQUEST_CODE_EDIT_CONTACT = 6088;
        // 最多 20 个联系人
        public static int LIMIT_NUM_SHOW_CONTACT = 20;


        public static final String ACTION_LOADCONTACTS_END = "contactsloadmanager_action_loadcontacts_end";
        public static final int INVALID_ID = -1;
        public static final String PRE_CONTACT_FIRST_LOAD = "contacts_first_load";


        public static final int USER_NOT_EXIST = 1000;

        public static final String UID_KEY = "uid";
        public static final String KEY_GROUP_MEMBER = "group_member";
        public static final String KEY_UCID = "ucid";
        public static final String KEY_USER_ID = "userId";
        public static final String KEY_MOBILE = "mobile";
        public static final String KEY_AVATAR = "avatar";
        public static final String KEY_NICKNAME = "nickname";
        public static final String KEY_AVATAR_DISPLAY_TEXT = "avatarDisplayText";


        public static final String REUPLOAD_CONTACT = "reupload_contact";
        public static final String UPLOAD_CONTACT_DEL = "del";
        public static final String UPLOAD_CONTACT_ADD = "add";
        public static final String UPLOAD_CONTACT_UPDATE = "update";
        public static final String UPLOAD_CONTACT_MATCH = "match";
        public static final String UPLOAD_CONTACT_INCREMENT = "increment";
        public static final String UPLOAD_CONTACT_NO_INCREMENT = "no_increment";

    }

    public static class ErrorCode {
        public static int ERROR_CODE_PARAM = 5301;

        public final static int OK = 0;
        public final static int AUTH_CODE_SYSTEM_ERROR = -1;
        public final static int AUTH_CODE_INVALID = 600;
        public final static int AUTH_CODE_INTERVAL_SPECIFIED_TIME = 601;
        public final static int AUTH_CODE_EXCEEDED_LIMIT_TIMES = 602;
        public final static int AUTH_CODE_EMAIL_TEMPLATE_EMPTY = 603;
    }


    /**
     * 打点：来源
     */
    public interface MPFrom {
        /**
         * 打点的key，与 ALMPConstants 保持一致
         */
        String MP_FROM = "MP_FROM";
        String KEXPLORE = "explore";
        String KLANDING_PAGE = "landing_page";
        String KEXPLORE_MORE = "explore/more";
        String KQRCODE = "qrcode";
        String KCHAT_CHAT = "chat/chat";
        String KCHAT_CHAT_RICH_CELL = "chat/richcell";
        String KCHAT_PS = "chat/ps";
        String KPS_MENU = "ps_menu";
        String KSCHEME = "scheme";
        String KADS = "ads";
        String SETTING = "settings";
        String ENDCALL = "endcall";
        String CALLEND = "callend";

        String KCHATBOT_WF = "chatbot/wf";
        String KCHATBOT_CARD = "chatbot/card";
        String KCHATBOT_MENU = "chatbot/menu";
        String KCHATBOT_BAR = "chatbot/bar";
        String SYSTEM_NOTIFY = "systemnotify";
        String CRM_POPUP = "crm/popup";
        String MAIN = "main";
        String ME = "me";
        String ME_ACCOUNT = "me/account";
        String PRIVACY = "privacy";
        String FROM_CHAT_SHORTCUT = "chat_shortcut";
        String FROM_CHAT_MENU = "chat_menu";
        String FROM_BADGE_WALLET = "wallet_";
        String FROM_BADGE_VIP = "vip_";
        String FROM_BADGE_CHAT_LIST = "user_chatlist";
        String FROM_BADGE_CALL_LOG_LIST = "user_call_log_list";
        String FROM_BADGE_CONTACT_LIST = "user_contactlist";
        String FROM_BADGE_CHAT = "user_chat";
        String FROM_BADGE_CONTACT_PROFILE = "user_contactprofile";
        String FROM_BADGE_CALL_LOG_DETAIL = "user_call_log_details";
        String FROM_BADGE_TAB_ME = "user_tab_me";
        String FROM_BADGE_PROFILE_PARTICIPANTS = "user_group_profile_participants";
        String FROM_BADGE_GROUP_CALL_LOG_PARTICIPANTS = "user_group_call_log_participants";
        String FROM_BADGE_SEARCH_HISTORY_MP = "user_search_history_mp";
        String FROM_BADGE_SEARCH_HISTORY_PARTICIPANTS = "user_search_history_participants";
        String FROM_BADGE_SEARCH_HISTORY = "user_search_history";
        String FROM_BADGE_SELECT_USER_VIEW = "user_select_user_view";
        String FROM_BADGE_MIGRATION_SELECT_SESSION = "user_migration_select_session";
        String FROM_BADGE_FORWARD_SEARCH_RESULT = "user_forward_search_result";
        String FROM_BADGE_GROUP_PROFILE_PARTICIPANTS_SEARCH = "user_group_profile_participants_search";
        String FROM_CRM_PN = "pn";
        String FROM_CRM_TIME2SHOW = "tts";
        String FROM_LEFT = "_left";
        String FROM_RIGHT = "_right";
        String FROM_CRN_POPUP = "popup";
        String FROM_VIP_P2P_HD = "vip_p2p_hd";
        String FROM_VIP_MEET_HD = "vip_meet_hd";
        String FROM_CALLS_SEARCH = "calls/search";
        String FROM_CHATS_SEARCH = "chats/search";
        String FROM_EXPLORE_SEARCH = "explore/search";
        String FROM_CONTACTS_SEARCH = "contacts/search";
        String FROM_ME_SEARCH = "me/search";
        // Note: The newly added [From Value] is connected with a [slash] and is all lowercase. As follows:
        String FROM_VOIP_AUDIO = "voip/audio";
        String FROM_VOIP_VIDEO = "voip/video";
        String FROM_ABOUT_POLICY = "about_policy";
        String FROM_ABOUT_TERMS = "about_terms";
        String FROM_ME_SHARE = "me_share";
        String FROM_CHATLIST_SHARE = "chatlist_share";
        String FROM_CALLLIST_SHARE = "calllist_share";
        String FROM_CONTACT_SHARE = "contact_share";
        String FROM_CHAT_EVENT_SHARE = "chat/event_share";
        String FROM_CHAT_EVENT_DETAIL = "chat/event_detail";
        String FROM_CHAT_EVENT_JOIN = "chat/event_join";
        String FROM_COLD_LAUNCH = "cold/launch";

        // chatcell/EChatSubItemType
        String FROM_CHAT = "chatcell";
        String FROM_CHAT_WEBCLIP = FROM_CHAT + "/webclip";
        String FROM_CHAT_REMITTANCE_CARD = FROM_CHAT + "/remittance";
        String FROM_CHAT_REMITTANCE_NOTIFY = FROM_CHAT + "/remittance_notify";
        String FROM_CHAT_MULTIMEDIA = FROM_CHAT + "/multimedia";
        String FROM_CHAT_POLL = FROM_CHAT + "/poll";
        String FROM_CHAT_STORE_ORDER = FROM_CHAT + "/store_order";
        String FROM_CHAT_GIFT_CARD = FROM_CHAT + "/gift";
        String FROM_CHAT_BILL_CARD = FROM_CHAT + "/shopping_cart";
        String FROM_CHAT_BILL_PROGRESS = FROM_CHAT + "/form_progress";
        String FROM_CHAT_TEXT_WEB = FROM_CHAT + "/plain_text";
        String FROM_CHAT_SHARE_CARD = FROM_CHAT + "/share_template";
        String FROM_CHAT_STEP_RANKING = FROM_CHAT + "/steps_ranking";
        String FROM_CHAT_STEP_LIKE = FROM_CHAT + "/steps_like";
        String FROM_CHAT_SYSTEM_NOTIFY = FROM_CHAT + "/slightcauion";

        String FROM_CHATS_WALLET = "chats/wallet";
        String FROM_ME_WALLET = "me/wallet";
        String FROM_EXPLORE_WALLET = "explore/wallet";
        String FROM_CALLS_WALLET = "calls/wallet";
        String FROM_E2EE_LEARNMORE = "e2ee/learn_more";

        String FROM_MP_RTC_NOTIFICATION = "mp/rtc_notification";
        String FROM_MP_DEBUG = "mp/debug";
        String FROM_MP_GAME = "mp/game";
        String FROM_MP_SCHEME = "mp/scheme";
        String FROM_MP_OPEN = "mp/open";
        String FROM_MP_SCAN = "mp/scan";
        String FROM_MP_AUTH = "mp/auth";
        String FROM_ME_QRCODE = "me/qrcode";
        String FROM_ME_DELIVERY_ADDRESS = "me/delivery_address";
        String FROM_ME_UAE_PASS = "me/uae_pass";
        String FROM_DEEPLINK_ADJUST = "deeplink/adjust";
        String FROM_DEEPLINK_FIREBASE = "deeplink/firebase";
        String FROM_VOIP = "voip";
        String FROM_VOIP_BLUR = FROM_VOIP + "/blur";
        String FROM_VOIP_REMOVEAD = FROM_VOIP + "/remove_ad";
        String FROM_VOIP_MIXCALL = FROM_VOIP + "/mixcall";
        String FROM_MEET_REMIND = "meet/remind";
        String FROM_MEET_BLUR = "meet/blur";
        String FROM_SCHEME_YOUTUBE = "scheme/youtube";
        String FROM_SCHEME_REDIRECT = "scheme/redirect";
        String FROM_APP_UPGRADE = "app/upgrade";
        String FROM_AVATAR_VIP = "avatar/vip";
        String FROM_OA_BROWSER = "oa/browser";
        String FROM_LANDING = "landing";

        String FROM_PROFILE = "profile";
        String FROM_PROFILE_BM = FROM_PROFILE + "/BM";
        String FROM_PROFILE_TS = FROM_PROFILE + "/TS";
        String FROM_PROFILE_ORDER = FROM_PROFILE + "/order";
        String FROM_PROFILE_PRODUCT = FROM_PROFILE + "/product";

        String FROM_ME_SETTING = "me/setting";
        String FROM_PAYMENT_ROUTER = "payment/router";
        String FROM_PAYMENT_AUTH = "payment/auth";
        String FROM_DATA_VAULT_AUTH = "datavault/auth";
        String FROM_CHAT_LANDING_PAGE = "landingpage_calling_share";
    }

    public static class SPName {
        public static String SP = "shared_preference";
        public static final String KEY_CONFIG_STORAGE_NOTIFICATION = "config_storage_notification";
        public static String KEY_GDPR_ALLOWED = "gdpr.user.allowed";
        public static String ADS_KEY_CONSENT_INFO_TIMESTAMP = "ads_sp_key_consent_info_timestamp";
        public static String ADS_KEY_TEST_DEVICE_HASH_ID = "ads_sp_key_test_device_hash_id";
        public static String ADS_KEY_GDPR_FORCE_TESTING = "ads_sp_key_gdpr_force_testing";
        public static String KEY_IS_QUERY_OA_DONE = "key_is_query_oa_done";
        public static String KEY_OA_AUTO_PIN_LIST = "key_oa_auto_pin_list";
        public static String ASK_KEY = "_ask_hide_line_key_";
        public static String KEY_ASKUSER_POPUP = "askUser_Popup";
        public static String KEY_ASKUSER_POPUPKEY = "popupKey";
        public static String KEY_ASKUSER_POPUPMODE = "popupMode";
        public static String KEY_ASKUSER_POPUPDELAY = "popupDelay";
        public static String KEY_STEPS_START_TIME = "sp_key_steps_start_time";
        public static String KEY_STEPS_HAS_BEEN_OPENED = "sp_key_steps_mp_has_been_opened";
    }

    public static class PermissionGuide {
        public static final String PERMISSION_MIC = "microphone";
        public static final String PERMISSION_CAMERA = "camera";
        public static final String PERMISSION_MIC_CAMERA = "micAndcamera";
        public static final String PERMISSION_NOTIFICATION = "notification";
        public static final String PERMISSION_FLOATINGWINDOW = "floatingwindow";
        public static final String PERMISSION_SHOWONLOCKSCREEN = "showonlockscreen";
        public static final String PERMISSION_END = "end";
        public static final String PERMISSION_START = "start";
        //footprint
        public static final String PERMISSION_GUIDE_SHOW = "permissionGuide_show";
        public static final String PERMISSION_GUIDE_NOTIFICATIONACCEPT = "permissionGuide_notificationAccept";
        public static final String PERMISSION_GUIDE_MICOPHONEACCEPT = "permissionGuide_micophoneAccept";
        public static final String PERMISSION_GUIDE_CAMERAACCEPT = "permissionGuide_cameraAccept";
        public static final String PERMISSION_GUIDE_OVEROTHERACCEPT = "permissionGuide_overOtherAccept";
        public static final String PERMISSION_GUIDE_ONLOCKSCREENACCPET = "permissionGuide_onLockScreenAccpet";
        public static final String PERMISSION_GUIDE_GRANTPERMISSION = "permissionGuide_grantPermission";
        public static final String PERMISSION_GUIDE_NOTNOW = "permissionGuide_notNow";

        public static final String NOTIFICATIONGUIDECALLLIST_TURNON = "notificationGuideCalllist_turnOn";
        public static final String ONSYSTEMPERMISSIONPOPUP_NOTIFICATIONACCEPT = "onSystemPermissionPopup_notificationAccept";
        public static final String ONSYSTEMPERMISSIONPOPUP_MICOPHONEACCEPT = "onSystemPermissionPopup_micophoneAccept";
        public static final String ONSYSTEMPERMISSIONPOPUP_CAMERAACCEPT = "onSystemPermissionPopup_cameraAccept";
        public static final String ONSYSTEMPERMISSIONPOPUP_OVEROTHERACCEPT = "onSystemPermissionPopup_overOtherAccept";
        public static final String ONSYSTEMPERMISSIONPOPUP_ONLOCKSCREENACCPET = "onSystemPermissionPopup_onLockScreenAccpet";

        public static final String SETTINGPERMISSIONGUIDE_SHOW = "settingPermissionGuide_show";
        public static final String SETTINGPERMISSIONGUIDE_NOTIFICATIONACCEPT = "settingPermissionGuide_notificationAccept";
        public static final String SETTINGPERMISSIONGUIDE_MICOPHONEACCEPT = "settingPermissionGuide_micophoneAccept";
        public static final String SETTINGPERMISSIONGUIDE_CAMERAACCEPT = "settingPermissionGuide_cameraAccept";
        public static final String SETTINGPERMISSIONGUIDE_OVEROTHERACCEPT = "settingPermissionGuide_overOtherAccept";
        public static final String SETTINGPERMISSIONGUIDE_ONLOCKSCREENACCPET = "settingPermissionGuide_onLockScreenAccpet";

        public static final int PERMISSION_SELECTED_USER_REQUESTCODE = 1001;
    }

    public static class Notifications {
        public static final String NOTIFICATIONS_CONTACTJOINED = "notifications_contactJoined";//2
        public static final String NOTIFICATIONS_KEEPALIVE = "notifications_keepALIve";//1
        public static final String NOTIFICATIONS_INCHATSOUND = "notifications_inChatSound";//3
        public static final String NOTIFICATIONS_MSGNOTIFICATIONTONE = "notifications_msgNotificationTone";//4
        public static final String NOTIFICATIONS_MSGVIBRATE = "notifications_msgVibrate";//5
        public static final String NOTIFICATIONS_MSGLIGHT = "notifications_msgLight";//6
        public static final String NOTIFICATIONS_MSGUSEHIGHPRIORITY = "notifications_msgUseHighPriority";//7
        public static final String NOTIFICATIONS_MSGPREVIEW = "notifications_msgPreview";//8
        public static final String NOTIFICATIONS_GROUPNOTIFICATIONTONE = "notifications_groupNotificationTone";//9
        public static final String NOTIFICATIONS_GROUPVIBRATE = "notifications_groupVibrate";//10
        public static final String NOTIFICATIONS_GROUPLIGHT = "notifications_groupLight";//11
        public static final String NOTIFICATIONS_GROUPUSEHIGHPRIORITY = "notifications_groupUseHighPriority";//12
        public static final String NOTIFICATIONS_GROUPPREVIEW = "notifications_groupPreview";//13
        public static final String NOTIFICATIONS_CALLRINGTONE = "notifications_callRingtone";//14
        public static final String NOTIFICATIONS_CALLVIBRATE = "notifications_callVibrate";//15


    }

    public static class Schema {
        public static final String SESSION_ID = "sessionid";
        public static final String POSITION = "position";
        public static final String CALL_ID = "callId";
        public static final String KEY_ORIGINAL_URL = "key_original_url";
        public static final String URL_BADGE_EXPLANATION_HOME = "https://botim.me/mp/b/?app=me.botim.function.userflagpopup";
        public static final String URL_VOIP_RATING_URL = "https://botim.me/mp/b/?app=me.botim.function.callratingdialogv2%2Findex.html";
        // "index.html" must be set to prevent the endcall page from appearing multiple times (Mini Program SDK logic)
        public static final String URL_END_CALL_PAGE_URL = "https://botim.me/mp/b/?app=me.botim.function.endcallpage/index.html";

        public static final String EMPTY_VIEW_ACTION = " https://botim.me/mp/b/?app=ae.cashnow.snplh5%2Fsnpl%2Findex.html%23%2F%3Ffrom%3Ddestwid";

        public static final String URL_MP_ALL_SERVICE = "https://botim.me/mp/b/?app=me.botim.explore.exploremore";

        public static final String URL_ADS_REMITTANCE = "https://botim.me/mp/b/?app=me.botim.pay.remittanceapp%2Findex.html%23%2Fremittance%3Futm_source%3Dbads%26utm_medium%3Dbads%26utm%3D_remit_fallback";
        public static final String URL_ADS_VIP = "https://botim.me/mp/b/?app=me.botim.function.appvip%2Findex.html%23%3Futm%3DNewBADs_2024";
        public static final String URL_NEW_CALL = "internalbot://botim.me/go/newcall";
    }


    public interface VoipConstans {

        public static final int MSG_UPDATE_DURATION = 1;

        public static final int MSG_CALL_TIME_OUT = 2;

        public static final int MSG_RECONNECTING_TIME_OUT = 3;

        public static final int MSG_VOICE_MAIL_TIME_OUT = 4;

        public static final int MSG_VOICE_MAIL_START = 5;

        public static final int MSG_UPDATE_NOTIFYCATION = 6;

        public static final int MSG_HEADSET_DISCONNECTED = 7;

        public static final int MSG_HEADSET_CONNECTED = 8;

        public static final int MSG_DELAY_UNACCEPT_TOAST = 9;

        public static final int DURATION_RECONNECT_TIME_OUT = 1000 * 90;

        public static final int DURATION_CALL_TIME_OUT = 1000 * 60 * 2;

        public static final int DURATION_CALL_END = 500; // 1000 * 2;

        public static final int DELAY_UPDATE_DURATION = 1000;

        public static final int DELAY_UPDATE_NOTIFY_DURATION = 1000;

        public static final int TYPE_ANCHAT = 0;

        public static final int TYPE_RTC = 1;

        String ACTION_BACKGROUND_VOIP_END = "ACTION_BACKGROUD_VOIP_END";

        String ACTION_IN_CALL_AD_LOADED = "ACTION_IN_CALL_AD_LOADED";
        String ACTION_VIDEO_CALL_AD_LOADED = "ACTION_VIDEO_CALL_AD_LOADED";

        public static final String RINGTONE_SILENT = "Silent";
        String HAVE_WIFI4G_TYPE = "have_wifi4g_type";
    }

    public interface BotRTCLogLevel {
        int LEVEL_VERBOSE = 1;
        int LEVEL_DEBUG = 2;
        int LEVEL_INFO = 3;
        int LEVEL_WARNING = 4;
        int LEVEL_ERROR = 5;
    }


    public interface Push {
        // Android
        String DEVICETYPE = "1";
        String FORCE_HTTP = "force_use_http";
    }

    public static class Pay {
        public static final String SEND_REMITTANCE = "https://botim.me/mp/b/?app=me.botim.pay.remittancedialog%2Findex.html%23%2Fremittance%3FfriendUID%3D_SUCID_%26friendMobile%3D_SID_%26friendCountryCode%3D_SESSIONCOUNTRYCODE_";
        public static final String SEND_SHARE_ACCOUNT = "https://botim.me/mp/b/?app=me.botim.pay.remittancedialog%2Findex.html%23%2Fremittance%2Freceiver%2Faccounts%3FfriendUID%3D_SUCID_%26friendMobile%3D_SID_%26friendCountryCode%3D_SESSIONCOUNTRYCODE_";
    }

    public static class ChatType {
        public static final String P2P = "p2p";
        public static final String GROUP = "group";
        public static final String BOT_TEAM = "botteam";
        public static final String OA = "oa";
    }

    public static class MPUtils {
        public static final String MSISDN = "_MSISDN_";
        public static final String UCID = "_UCID_";
        public static final String SUCID = "_SUCID_";
        public static final String FLAGVIP = "_FLAGVIP_";
        public static final String TIMESTAMP = "_TIMESTAMP_";
        public static final String SID = "_SID_";
        public static final String STYPE = "_STYPE_";
        public static final String COUNTRYCODE = "_COUNTRYCODE_";
        public static final String SESSIONCOUNTRYCODE = "_SESSIONCOUNTRYCODE_";

        public static final String FROM = "_FROM_";
        public static final String EXTRA_KEY_UAEPASS_FROM = "uaePassFrom";
        public static final String UAE_PASS_FROM_ACCOUNT = "AccountSetting";
        public static final String EXTRA_KEY_USERNAME = "userName";

        public static final String EXTRA_KEY_VIP_ENABLE = "vipEnable";
        public static final String EXTRA_KEY_WALLET_ENABLE = "walletEnable";

        public static final String EXTRA_KEY_VOIP_STATE = "voipState";
        public static final String EXTRA_KEY_RATING_SCORE = "ratingScore";
        public static final String EXTRA_KEY_ROOM_ID = "roomId";
        public static final String EXTRA_KEY_VOIP_TYPE = "voipType";

        public static final String EXTRA_KEY_END_CALL_AD_SIZE = "endCallAdSize";
        public static final String EXTRA_KEY_END_CALL_IS_E2EE = "isE2EE";
        public static final String EXTRA_KEY_END_CALL_TO_UID = "touid";
    }

    public static class Storage {
        public static final String COMMON_TABLE_NAME = "common_sp";
        public static final String COMMON_TOKEN_TABLE_NAME = "common_sp_token";

        //公共配置库，与账号无关，删账号还在
        public static final String CONFIG_TABLE_NAME = "config_storage";

    }

    public static class PullMsg {
        public static String TYPE_NOTIFICATION = "NOTIFICATION";
        public static String NOTIFY_ID = "notifyId";
        public static String KEY_SAVE_DATA = "sp_key_save_data";
        public static int DELAY_15_SECOND = 15 * 1000;
        public static int DELAY_4_HOUR = 4 * 60 * 60 * 1000;
        public static String TAG_PULL_MODE_WORK = "tag_pull_mode_work_request";
    }

    public interface GCM {
        int OS_OTHER = 0;
        int OS_HUAWEI = 1;
        int OS_XIAOMI = 2;
        int OS_OPPO = 3;//not used
        int OS_VIVO = 4;//not used
    }

    public interface NetworkCode {
        String AVATAR_URL = "url";
        String COCO_ID_INDEX = "cocoIdIndex";
        String Code = "code";
        String KEY_LINK = "key_link";
        int IOException_Code = 2;
        int Default_Code = 0;

        int BASE = 000000200;
        int OK = BASE + 37;
        int FAIL = BASE + 38;
        int INVALID_NAME = BASE + 39;
        int INVALID_BIRTHDAY = BASE + 51;
        int INVALID_LENGTH = BASE + 53;
        int CONTAINS_EMOJI = BASE + 54;
        int UID_NOT_MATCH = BASE + 55;

        int GROUP_BASE = 0000000300;
        int GROUP_OK = GROUP_BASE + 1;
        int GROUP_FAIL = GROUP_BASE + 2;
    }

    public interface FriendAction {
        // 好友数目达到1000上限
        String ACTION_FRIENDS_REACH_LIMIT = "action_friends_reach_limit";
        // 同步好友结束通知界面
        String ACTION_SYNFRIENDLIST_END = "action_synfriendlist_end";

        // 接受好友请求, 加好友并被接受之后双向关系建立结束通知界面
        String ACTION_ACCEPT_END = "action_accept_end";


        // 删除好友结束通知界面
        String ACTION_REMOVE_END = "action_remove_end";


        String ACTION_UPDATA_COCOFRIEND_END = "action_updata_cocofriend_end";

        String ACTION_READCONTACT_END = "action_readcontact_end";


        // 通知的DB发生改变
        String ACTION_UPDATE_NOTIFSTATUS_END = "action_update_notification_status_end";


        /**
         * UPLOADCONTACT 表数据加载完成
         */
        String ACTION_INVITEDFRIEND_LOADALL = "action_invitedfriend_loadall";


        /**
         * AppConstants-UserAction
         */
        // 获取用户信息
        String ACTION_GETSIMPLE_END = "action_getsimple_end";


        // 修改用户名字
        String ACTION_UPDATENAME_END = "action_updatename_end";

        // 修改avatar
        String ACTION_UPDATEAVATAR_END = "action_updateavatar_end";


        // 修改PROFILEPICTURE
        String ACTION_UPDATEPROFILEPICTURE_END = "action_updateaprofilepicture_end";

        // 修改签名
        String ACTION_UPDATESTATUS_END = "action_updatestatus_end";


        // 上传设备信息
        String ACTION_UPDATEDEVICETOKEN_END = "action_updatedevicetoken_end";

        // 手动登出时，调用。置空 device token 以及 更新 user log 信息
        String ACTION_COCOACCOUNT_LOGOUT_END = "action_cocoaccount_logout_end";

        /* ---------userconfig-------- */

        // 获取 userconfig
        String ACTION_GETCOCOACCOUNTCONFIG_END = "action_getCocoAccountConfig_end";

        // 修改通知配置：vibrate
        String ACTION_UPDATEVIBRATE_END = "action_updatevibrate_end";


        // 修改通知配置：Alert
        String ACTION_UPDATEALERT_END = "action_updatealert_end";

        // 修改通知配置：preview
        String ACTION_UPDATEPREVIEW_END = "action_updatepreview_end";

        // 修改通知配置：preview
        String ACTION_UPDATE_CALLS_ACCEPTONLYFRIEND_END = "action_calls_accept_only_friend_end";


        String EXTRA_ERRCODE = "extra_errcode";

        // usermodel 加载完成
//        String ACTION_USER_LOADFINISH = "action_user_loadfinish";


        String ACTION_UPDATE_LASTSEENPRIVACY = "action_update_lastseenPrivacy";
        String ACTION_UPDATE_PROFILEPHOTOPRIVACY = "action_update_profilehotoPrivacy";

        String ACTION_UPDATE_PROFILESTATUSPRIVACY = "action_update_profilestatusPrivacy";

        String ACTION_UPDATE_AUTODOWNLOAD_OPTION = "action_updateAutodownloadOption";

        String ACTION_RESET_AUTODOWNLOAD_OPTION = "action_resetAutodownloadOption";

        String ACTION_UPDATE_AUTOSAVEGALLERY = "action_update_Auto_SaveGallery";

        String ACTION_DELETE_ACCOUNT = "action_delete_account";

        String ACTION_UPDATE_HAVEREAD_PRIVACY = "action_update_haveread_privacy";

        String ACTION_DEALGROUP_TO_FAV = "action_dealgroup_to_fav";


        // 获取用户信息
        String ACTION_GET_BABAACCOUNT_END = "action_get_babaAccount_end";
        String ACTION_UPDATE_USERECC = "action_update_user_ecc";
        String ACTION_GET_BATCH_USERECC = "action_get_batch_user_ecc";
        String ACTION_GET_USERECC = "action_get_user_ecc";

        String ACTION_SETTINGS_BADGE_CHANGED = "action_settings_badge_changed";
        String ACTION_TABS_BADGE_CHANGED = "action_tabs_badge_changed";

        String ACTION_CHECK_DELETE = "action_check_delete";

        /**
         * AppConstants-GroupAction
         */
        // 获取群信息
        String ACTION_GETGROUPINFO_END = "action_getgroupinfo_end";
        // 创建群组
        String ACTION_CREATEGROUP_END = "action_creategroup_end";
        // 添加群用户
        String ACTION_ADDGROUPUSER_END = "action_addgroupuser_end";
        //添加群用户,并且设置了privacy setting
        String ACTION_ADDGROUPUSER_END_SHOW_FIALED_TO_ADD = "action_addgroupuser_end_show_failed_to_add";
        // 获取群组二维码的地址
        String ACTION_GETQRCODE_END = "action_getqrcode_end";
        // 通过扫描二维码加入群组
        String ACTION_ADDUSER_BYQRCODE_END = "action_adduser_byqrcode_end";
        // 群组删除用户或者群主退出群
        String ACTION_REMOVEUSER_END = "action_removeuser_end";
        // 更新群组名字
        String ACTION_GROUPRENAME_END = "action_grouprename_end";

        String ACTION_GROUP_UPDATE_DESC_END = "action_group_desc_end";
        // 扫描二维码
        String ACTION_SCANQRCODE_END = "action_scanqrcode_end";
        //设置成员权限
        String ACTION_MAKE_ADMIN_END = "action_make_admin_end";

        String ACTION_CANCEL_ADMIN_END = "action_cancel_admin_end";
        // 更新群组头像
        String ACTION_UPDATE_GROUPAVATAR_END = "action_update_groupavatar_end";

        //blocklist广播
        String ACTION_SEND_BLOCKLIST_END = "action_send_blocklist_end";
        //获取所有群组信息
        String ACTION_GET_ALLGROUPINFO = "action_get_allgroupinfo";

        String ERRCODE = "ERRCODE";
        String EXTRA_GID = "extra_gid";

        //创建groupvoip
        String ACTION_GROUPVOIP_INVITENEW = "action_groupvoip_invitenew";

        String ACTION_GROUPVOIP_JOIN = "action_groupvoip_join";

        String ACTION_GROUPVOIP_INVITENEW_NO_CHECK_MIN = "action_groupvoip_invitenew_nocheck_min";

        String ACTION_GROUPVOIP_INVITE = "action_groupvovip_invite";

        String ACTION_GROUPVOIP_INVITEMEMBER = "action_groupvoip_invitemember";

        String ACTION_GETGROUP_SHARELINK = "action_getgroup_sharelink";

        String ACTION_QUERYGROUP_SHARELINK = "action_querygroup_sharelink";

        String ACTION_REVOKEGROUP_SHARELINK = "action_revokegroup_sharelink";

        String ACTION_ADDGRPUSER_BYSHARELINK = "action_addgrpuser_bysharelink";

        String EventBus_Action_Notify_MP = "EventBus_Action_Notify_MP";
    }

    public static class SelectCountry {
        public static int ItemTypeData = 0;
        public static int ItemTypeSearch = 1;
    }

    public static class Explore {
        public final static int ItemTypeData_TextImage = 10;
        public final static int ItemTypeData_Ranking = 11;
        public final static int ItemTypeData_ItemRanking = 12;
        public final static int ItemTypeData_Calling = 13;
        public final static int ItemTypeData_ItemCalling = 14;
        public final static int ItemTypeData_TransferList = 15;
        public final static int ItemTypeData_ItemTransfer = 16;
        public final static int ItemTypeData_TransferRate = 17;
        public final static int ItemTypeData_HorizontalList = 18;
        public final static int ItemTypeData_HorizontalList_ItemMore = 19;
        public final static int ItemTypeData_HorizontalList_ItemContent = 21;
        public final static int ItemTypeData_MPFeatured = 22;
        public final static int ItemTypeData_Banner = 23;
        public final static int ItemTypeData_StoreHead = 24;
        public final static int ItemTypeData_StoreItem = 25;
        public final static int ItemTypeData_WalletBalance = 27;
        public final static int ItemTypeData_CreditAmount = 28;
        public final static String TABLE_NAME = "sp_table_name_explore_save_data";
        public final static String KEY_SAVE_DATA = "sp_key_save_data_explore";
        public final static String KEY_SAVE_WALLET_DATA = "sp_key_save_wallet_data_explore";
        public final static String KEY_SAVE_FEATURED_SORT_LIST_DATA = "sp_key_save_featured_sort_list_data_explore";
        public final static String KEY_SAVE_LAST_QUERY_TIME = "sp_key_save_last_query_time_explore";
        public final static String KEY_EXPLORE_TOKEN = "sp_key_save_explore_token";
        // 此Key用于跨端同步 MpFeatured 的顺序，iOS也在用，不能改。
        public final static String KEY_SAVE_MP_FEATURED_ITEM_LIST_FIDS = "explore.mp.sequence";
        public final static String KEY_SAVE_MP_FEATURED_LANDING_PAGE_TUTORIAL = "landingPage.tutorial.showed";
        public final static int Refresh_All = 100; // 全量更新
        public final static int Refresh_Part = 101; // 局部更新
        public final static int Refresh_None = 102; // 不刷新
        public final static String Theme_Ads = "ads";
        public final static String Theme_Wallet_Balance = "wallet";
        public final static String Theme_Calling = "calling";
        public final static String Theme_HList = "hlist";
        public final static String Theme_Ranking = "ranking";
        public final static String Theme_TextImage = "textImage";
        public final static String Theme_TransferRate = "transferRate";
        public final static String Theme_TransferList = "transferList";
        public final static String Theme_Stores = "stores";
        public final static String Widget_Controller_Wallet = "wallet";
        public final static String Widget_Controller_Steps = "steps";
        public final static String Widget_Controller_Remittance = "remittance";
        public final static String Theme_Credit_Amount = "creditAmount";
        public final static int TextImageStyle_OnlyOne = 1;
        public final static int TextImageStyle_BigTitle = 2;
        public final static int TextImageStyle_Default = 3;
        public final static int TextImageStyle_CardLight = 0;
        public final static int TextImageStyle_CardDark = 1;
        public final static String ParamType_Date = "0";
        public final static String ParamType_Decimal = "1";
        public final static int Tag_Red = 1;
        public final static int Tag_Yellow = 2;
        public final static long DEFAULT_EXPLORE_REFRESH_INTERVAL = 60 * 60;
        public final static long DEFAULT_EXPLORE_SESSION_ID_INTERVAL = 30 * 60;

        public final static int ItemTypeData_Ads_Default = 260;
        public final static int ItemTypeData_Ads_Bot = 261;
        public final static int ItemTypeData_Ads_Applovin = 262;
        public final static int ItemTypeData_Ads_Admob = 263;
        public final static int ItemTypeData_Ads_FB = 264;

        public final static String LoadType_Init = "LoadType_Init";
        public final static String LoadType_Tab = "LoadType_Tab";
        public final static String LoadType_ReloadAllData = "LoadType_Reload_All_Data";
        public final static String LoadType_Push_ALL = "LoadType_Push_All";
        public final static String LoadType_Push_Widgets = "LoadType_Push_Widgets";
        public final static String LoadType_App_Foreground = "LoadType_App_Foreground";
        public final static String LoadType_App_Foreground_Notify = "LoadType_App_Foreground_Notify";

        public final static String Wid_Wallet = "wallet";
        public final static String Wid_Steps = "steps";
        public final static String Wid_MpFeatured = "mp_featured";
        public final static String Wid_Banner = "banner";

        public final static int AdsLoadType_HomePage = 0;
        public final static int AdsLoadType_Tab = 1;

        public static String TAG_EXPLORE_ALL_DATA = "tag_explore_all_data_work_request";
        public static String TAG_EXPLORE_BATCH_DATA = "tag_explore_batch_data_work_request";
        public static String TAG_EXPLORE_ADS_INIT_HOME_LOAD = "tag_explore_ads_init_home_load_work_request";
        public static String TAG_EXPLORE_SEARCH_PRELOAD_DATA = "tag_search_preload_data_work_request";
        public static String TAG_EXPLORE_ADS_INIT_TAB_LOAD = "tag_explore_ads_init_tab_load_work_request";
        public static String TAG_EXPLORE_ADS_COMMON_LOAD = "tag_explore_ads_common_load_work_request";
        public static String TAG_EXPLORE_MP_FEATURED_LOAD = "tag_explore_mp_featured_load_work_request";
        public static String TAG_EXPLORE_BANNER_LOAD = "tag_explore_banner_load_work_request";
        public static String TAG_EXPLORE_WALLET_LOAD = "tag_explore_wallet_load_work_request";
        public static String TAG_EXPLORE_STEPS_LOAD = "tag_explore_steps_load_work_request";

        public static int CODE_RELOAD_ALL_DATA = 8375004;

        public static int BANNER_AUTO_PLAY_TIME_MAX = 5 * 1000;
        public static int BANNER_AUTO_PLAY_TIME_MIN = 3 * 1000;

        // track
        public static final String TrackKeyName = "kExploreClick";
        public static final String TrackParam_SessionId = "sessionId";
        public static final String TrackParam_Timestamp = "timestamp";
        public static final String TrackParam_Dt = "Dt";
        public static final String TrackParam_UserId = "userId";
        public static final String TrackParam_Utm = "utm";
        public static final String TrackParam_Wid = "wid";
        public static final String TrackParam_Url = "url";
        public static final String TrackParam_ToUid = "toUid";

        public static final String TrackDefaultUrl_HideNumber = "internalbot://botim.me/hide/number";
        public static final String TrackDefaultUrl_StreaksInfo = "internalbot://botim.me/streaks/info";

        public static final String SearchBar_DefaultLink = "https://botim.me/mp/b/?app=me.botim.function.exploresearchv3";

        //新版Search小程序链接
        public static final String URL_MP_SEARCH_BETA = "https://botim.me/mp/b/?app=me.botim.miniprogram.exploresearchv4";
    }

    public static class NotificationBuilderType {
        public static int TYPE_PACKET_NONE = -1;
        public static int TYPE_PACKET_COMMON = -2;
        public static int TYPE_PACKET_VOIP_OUTGOING = -3;
        public static int TYPE_PACKET_VOIP_RING = -4;
        public static int TYPE_PACKET_VOIP_INCALL = -5;
    }

    public static class PayBy {
        public static final String Router_Native_Wallet = "route://native/wallet/wallet";
        public static final String ROUTER_NATIVE_ADD_FUNDS = "route://native/wallet/addFunds";

        public static final String ROUTER_NATIVE_WALLET_BIND_CARD = "route://native/wallet/bindcard";

        public static final String KEY_FROM = "key_from";
        public static final String KEY_TO = "key_to";
        public static final String KEY_IS_KYC = "key_is_kyc";
        public static final String FROM_SCHEME_BOTIMPAY = "scheme_botimPay";
        public static final String FROM_INTERCEPT_BOTIMPAY_PROXY = "intercept_botimPayProxy";
        public static final String FROM_INTERCEPT_BOTIMPAY_DIRECTSOURCEURL = "intercept_botimpayDirectSourceUrl";
        public static final String FROM_SCHEME_CONCERNED = "scheme_paybyProcess";
        public static final String FROM_TAB_CHATS_WALLET = "chatlist_payCode";
        public static final String FROM_TAB_EXPLORE_WALLET = "explore_default_wallet";
        public static final String FROM_MP_PAYBY_BRIDGE = "mp_paybyBridge";
        public static final String FROM_TAB_CALLS_WALLET = "calllist_payCode";

        public static final String FROM_TAB_ACCOUNT_CARDS = "account_cards";

        public static final String CC_PAYBY_PREFIX = "payby.";
    }


    public interface E2EE {
        boolean E2E_SUPPORT = true;
        int DEFAULT_DEVICE_ID = 1;
        String KEY_SELF_KEY_UPLOAD_STATUS = "key.e2ee.selfkey.upload.status";
        String KEY_LAST_SIGNED_PRE_KEY_CHECK_TIME = "key.e2ee.signedPrekey.lastCheckTime";
        String KEY_SIGNED_PRE_KEY_UPLOAD_FAIL_COUNT = "key.e2ee.signedPrekey.upload.failCount";
        String KEY_PING_UIDS = "key.e2ee.ping.uids";
        String KEY_WAITING_PING_UIDS = "key.e2ee.ping.waiting.uids";
        String EVENT_RECOVER_DB = "event.recover.db";


        //初始化e2ee channel错误码
        /**
         * 自己的key没有上传
         */
        int INIT_ERROR_CODE_SELF_KEY_NOT_UPLOAD = 100;
        /***
         *SDK不可用
         */
        int INIT_ERROR_CODE_SDK_NOT_ENABLE = 101;
        /**
         * 对端没有上传key
         */
        int INIT_ERROR_CODE_PEER_NOT_UPLOAD_KEY = -102;
        int INIT_ERROR_CODE_NET_WORK_ERROR = -101;
        int INIT_ERROR_CODE_PROCESS_FAIL = -104;

        /**
         * 重试次数超过3次还没成功
         */
        int INIT_ERROR_CODE_RETRY_FAIL = -103;

        /**
         * e2ee sdk创建通道失败
         */
        int INIT_ERROR_CODE_CREATE_SESSION_FAIL = 104;


        /**
         * 没有打开e2ee开关
         */
        int INIT_ERROR_CODE_E2EE_DISABLE = 105;


        //加密失败错误码
        /**
         * 本地e2ee通道未创建好
         */
        int ENCRYPT_ERROR_CODE_SESSION_NOT_READY = 1;
        /**
         * 创建e2ee通道失败
         */
        int ENCRYPT_ERROR_CODE_SDK_ERROR = 2;

        /**
         * e2ee sdk不可用
         */
        int ENCRYPT_ERROR_CODE_SDK_NOT_SUPPORT = 3;

        /**
         * 自己的key还没上传
         */
        int ENCRYPT_ERROR_CODE_SELF_KEY_NOT_UPLOAD = 4;


        String URL_LEARN_MORE = "https://botim.me/faq/e2ee.html";

        int FILE_ENCRYPT_BUFFER_SIZE = 1024 * 8;//文件加密分段用4K

        String ACTION_UPLOAD_KEY_RESULT = "ActionUploadKeyResult";


        int VOIP_DECODE_SUCCESS = 0;
        int VOIP_DECODE_FAIL_DUPLICATE = 1;
        int VOIP_DECODE_UNKNOW_ERROR = -1;
        int VOIP_DECRYPT_ERROR = 2;
    }

    public interface Scan {
        int SCAN_REQUEST_CODE = 1000;
        //扫码相关
        int SCAN_MODE_DEFAULT = 0;
        int SCAN_MODE_ONLY_SCAN = 1;
    }


    public static class Map {
        public static final String KEY_FROM = "from";
        public static final String FROM_MP = "from_mp";
    }

    /**
     * 此分组用于BWorkManager的Work的Listener。
     * 包括批量和单个Work的监听。 @setBatchWorkListener & @setWorkListener
     * 示例代码查看 @BWorkListener
     * <p>
     * 以下ID为Work监听的唯一标识，主要是用来移除Work的监听。
     * <p>
     * 不可重复！！！
     * 不可重复！！！
     * 不可重复！！！
     * <p>
     * 且约定任何新增Work监听，必须在此处添加非重复的ID，用于移除监听。
     * <p>
     * ID设置的示例代码见 @BWorkListener#getListenerId
     */
    public static class WorkListenerId {
        public static final long ADS_INIT = 1;
    }

    /**
     * Work Input Data Key
     */
    public static class WorkInputData {
        public static final String ADS_TYPE = "adsType";
        public static final String ADS_KEY = "adsKey";
        public static final String INITIALIZED = "initialized";
        public static final String INITIALIZING = "initializing";
    }

    public static class Login {
        public static final String SP_KEY_OTP_USA_IS_AGREE_SMS = "sp_key_otp_usa_is_agree_sms";
    }

    /**
     * 用于不同业务的周期性上报埋点数据
     */
    public static class PeriodicTrack {
        public static final String TYPE_NOTIFICATION_ACK = "notification_ack";
        public static final int THRESHOLD_COUNT_NOTIFICATION_ACK = 10;
        public static final long INTERVAL_NOTIFICATION_ACK = 5 * 60;  // 5 minutes 已经在方法中 * 1000 了。
    }

    public static class NotificationAck {
        public static final String FAILED_REASON_DOWNLOAD_IMAGE = "downloadImageFailed";
    }

    public static final int TRUE = 1;

    public interface DeepLink {
        String KEY_FROM = "from";
        String KEY_URI = "uri";
        String FROM_ADJUST = "adjust";
        String FROM_FIREBASE = "firebase";
        String FROM_PAYBY = "payby";
    }

    public interface TaskKey {
        String KEY_HWPermissionTipDialog = "HWPermissionTipDialog";
        String KEY_AddTrustedDeviceDialog = "AddTrustedDeviceDialog";
        String KEY_AskAgeDialog = "AskAgeDialog";
        String KEY_DeepLink = "deepLink";
        String KEY_AdsConsentInfoDialog = "AdsConsentInfoDialog";
        String KEY_ChatFloatingWindow = "ChatFloatingWindow";
        String KEY_LandingPage_Tutorial = "landingPageTutorial";
    }

    public interface DB {
        int TYPE_NON_ENCRYPTED = 0; // 非加密数据库
        int TYPE_ENCRYPTED = 1; // 加密数据库
        int DB_MESSAGE_DEFAULT = 0;
        /**
         * 消息正在入库中
         */
        int DB_MESSAGE_PROCESS = 1;
        int DB_MESSAGE_SUCCESS = 2;
        int DB_MESSAGE_FAIL = 3;


        String kDAOAction_CallLogTable = "kDAOAction_CallLogTable";
        String kDAOCategory_RowReplace = "kDAOCategory_RowReplace";
        String kDAOCategory_RowRemove = "kDAOCategory_RowRemove";
    }


    public interface AppStart {
        String TAG_REND_MESSAGE = "tag_message_resend";
        String TAG_SYNC_CONTACT = "tag_sync_contact";
        String TAG_START_DAEMON_SERVICE = "tag_start_daemon_service";
        String TAG_UPDATE_BADGE = "tag_update_badge";
        String TAG_INIT_APP_RUNTIME_ENV = "init_app_runtime_env";
        String TAG_INIT_NOTIFY_CHANNEL = "init_notify_channel";
        String TAG_OTHER_CHANNEL = "other_channel";
        String TAG_STEPS_GET_MP_URL = "tag_steps_get_mp_url";
    }

    public interface Chat {
        int kChatMsgType_Image = 1;
        int kChatMsgType_Audio = 2;
        int kChatMsgType_OrigImage = 4;
        int kChatMsgType_ShortVideo = 14;
        int kChatMsgType_File = 15;
        int kChatMsgType_TextImage = 17;
        int kChatMsgType_TextVideo = 18;

        interface Payment {
            int KChatPayment_Theme_Default = 0;
            String KChatPayment_transferUrls = "transferUrls";
            String KChatPayment_transferBubbleActive = "transferBubbleActive";
            String KChatPayment_transferBubbleInactive = "transferBubbleInactive";
            String KChatPayment_transferBubbleRejected = "transferBubbleRejected";
        }

        String EVENT_BUS_ACTION_CHAT_CLEAR_TOP = "clearTop";
    }

    public interface Bundle {
        String fileName = "filename";
        String msgType = "msgType";
        String upgradeType = "upgradeType";
        String appUpdateUrl = "appUpdateUrl";
        String upgradeInfo = "upgradeInfo";
        String latestVersion = "latestVersion";
        String checkCycle = "checkCycle";
        String add_widget_classname = "add_widget_classname";
        String key_tab_position = "extra_tab_position";
        String key_reset_hide_selection = "extra_reset_hide_selection";
        String key_selection_change = "extra_selection_change";
        String key_selection_open = "extra_selection_open";
    }

    public interface Network {
        interface requestParameters {
            String KEY_BRAND = "brand";
            String KEY_MODEL = "model";
            String EXTEND_PEDOMETER_STEPS = "pedometerSteps";
            String EXTEND_PERMISSION = "permission";
        }
    }

    /**
     * 与 ALMPConstants.MP_Search 对应
     */
    public interface MP_Common {
        String KEY_SHARED_ELEMENT_SEARCH = "shared_search";
        String KEY_SHARED_ELEMENT_SEARCH_CANCEL = "shared_search_cancel";
        String KEY_SHARED_SEARCH_BUNDLE = "shared_search_bundle";
        String KEY_SHARED_SEARCH_PLACEHOLDER = "searchPlaceholder";
    }


    /**
     * FTS相关常量
     */
    public interface MIGRATE {
        String KEY_FIRST_INSTALL_SERVER_TIME = "first_install_server_time";
        String KEY_FIRST_INSTALL_SYSTEM_TIME = "first_install_system_time";
        String KEY_FIRST_INSTALL_ROW_ID = "first_install_row_id";
        String KEY_ROW_ID = "rowid";


        String KEY_FTS_MSG_STORAGE_STATE = "ChatFtsRecord-state";
        String KEY_FTS_USER_STORAGE_STATE = "UserFtsRecord-state";
        String KEY_P2P_CALL_MIGRATE_STORAGE_STATE = "P2pCallMigrate-state";
        String KEY_GROUP_CALL_MIGRATE_STORAGE_STATE = "GroupCallMigrate-state";

        int INDEX_STATE_NOT_READY = -1;
        int INDEX_STATE_COMPLETED = -2;

        int VERSION_CODE_DB = 1011;

        String MESSAGE_TABLE_NAME_P2P = "ChatMessageModel";
        String MESSAGE_TABLE_NAME_GROUP = "GroupMessageModel";

        String FTS_TABLE_NAME_USER = "FTSTableUser";

        String TAG_USER = "User";
        String TAG_GROUP = "Group";


        @NonNull
        static String getUserIndexStateKey(boolean isUser, @NonNull String key) {
            return FTS_TABLE_NAME_USER + "-" + key + " " + (isUser ? TAG_USER : TAG_GROUP);
        }

        @NonNull
        static String getMigrateStateKey(@NonNull String tableName, @NonNull String key) {
            return tableName + "-" + key;
        }


    }


    public interface RecentService {
        int TYPE_DEFAULT = 0; // The default value is 0, which is compatible with the old version, that is, the default MP type.
        int TYPE_NATIVE_LINK = 1;
        String KEY_ID = "id";
        String KEY_NAME = "name";
        String KEY_DESC = "desc";
        String KEY_LINK = "link";
        String KEY_HEAD_URL = "headUrl";
    }

    public interface MpAd {
        int DEFAULT_MP_ADS_MAX_COUNT = 20;
        String PRELOAD_INSTANCE_ID = "default_preload_instanceId"; // 预加载广告特殊 instanceId
        // ad layout type
        String AdLayoutType_Key = "adLayoutType";
        int AdLayoutType_Default = 0; // Fixed ratio style
        int AdLayoutType_EndCall = 1; // EndCall style of non-fixed ratio style
    }

    public interface AdVideoStatus {
        String PLAY = "play"; // 播放
        String PAUSE = "pause"; // 暂停
        String END = "end"; // 结束，播放完成
    }

    @IntDef({
            PopupMode.multi,
            PopupMode.once,
            PopupMode.mandatory
    })
    public @interface PopupMode {
        int multi = 0;
        int once = 1;
        int mandatory = 2;
    }

    public static int IMMEDIATE_TRIGGER = 5;

    public interface AppWidget {
        interface SNPLWidget {
            int WIDGET_TYPE_FULL = 0;
            int WIDGET_TYPE_LITE = 1;
            int STATUS_NEVER_USED = 0;
            int STATUS_UTILIZED_NOT_OVERDUE = 1;
            int STATUS_UTILIZED_WITH_OVERDUE_BILLS = 2;
            int STATUS_UTILIZED_WITHOUT_OUTSTANDING_BILLS = 3;
            int CLICK_THROUGH_THE_LITE = 1;
            int CLICK_THROUGH_THE_FULL = 2;
            int CLICK_THROUGH_THE_EXTERNAL = 3;
            String EXTRAS_CLICK_EYE = "EXTRAS_CLICK_EYE";
            String EXTRAS_CLICK_REFRESH = "EXTRAS_CLICK_REFRESH";
            String EXTRAS_WIDGET_DATA = "EXTRAS_WIDGET_DATA";
            String KEY_WIDGETS_SNPL = "widgets_snpl";
            String KEY_WIDGET_ID = "widgetId";
            String KEY_EYE_STATUS = "eyeStatus";
        }
    }

    public interface LandingPage {
        String JSON_KEY_SINGLE_LP_SUB_DATA = "singleLPSubData";
        String JSON_KEY_MULTI_LP_SUB_DATA = "multiLPSubData";
        String JSON_KEY_THEME = "theme";
        String JSON_KEY_BUTTON_NAME = "buttonName";
        String JSON_KEY_RED_DOT_NUMB = "redDotNumb";
        String JSON_KEY_PRELOAD = "preload";
        String JSON_KEY_TAG = "tag";
        String JSON_KEY_SUB_BUSINESS_TYPE = "subBusinessType";
        String JSON_KEY_REDIRECT_URL = "redirectUrl";
        String JSON_KEY_SERVICE_ICON_URL = "serviceIconUrl";
        String JSON_KEY_SERVICE_NAME = "serviceName";
        String JSON_KEY_MAIN_TEXT = "mainText";
        String JSON_KEY_CLOSE_BUTTON = "closeButton";
        String JSON_KEY_BACKGROUND_TYPE = "backgroundType";
        String JSON_KEY_SUB_TEXT_DATA = "subTextData";
        String JSON_KEY_RATE_DATA = "rateData";
        String JSON_KEY_BALANCE_DATA = "balanceData";

        String JSON_KEY_SOURCE_ICON_URL = "sourceIconUrl";
        String JSON_KEY_TARGET_ICON_URL = "targetIconUrl";
        String JSON_KEY_SOURCE_VALUE = "sourceValue";
        String JSON_KEY_TARGET_VALUE = "targetValue";
        String JSON_KEY_COMPARISON_OPERATOR = "comparisonOperator";

        String JSON_KEY_ICON_URL = "iconUrl";
        String JSON_KEY_CURRENCY = "currency";
        String JSON_KEY_BALANCE = "balance";
        String JSON_KEY_LOW_BALANCE = "lowBalance";

        String JSON_KEY_SUBTEXT = "subText";
        String JSON_KEY_COLOR = "color";
        String JSON_KEY_SUB_CONTENT_DATA = "subContentData";
        String JSON_KEY_SHOW_TIME = "showTime";
        String JSON_KEY_EXPIRE_TIME = "expireTime";
        String JSON_KEY_INTERVAL_DURATION = "intervalDuration";
        String JSON_KEY_DISPLAY_DURATION = "displayDuration";

        int TAB_SESSION_NORMAL = 1;
        int TAB_SESSION_AR = 3;

        int UNDO_MAX_TIME = 2000; // ms

        String MP_WAKE_UP_ONLY = "mp_wake_up_only";

        String SP_TABLE_NAME = "todo_list_table_name_sp";
        String KEY_SAVE_ORIGINAL_DATA = "sp_key_save_original_data_landing_page";

        long DEFAULT_LANDING_PAGE_REFRESH_INTERVAL = 60 * 60;
        long DEFAULT_LANDING_PAGE_MIX_REFRESH_INTERVAL = 5 * 60;

        String KEY_SAVE_LAST_QUERY_TIME = "sp_key_save_last_query_time_todo_list";

        int NOTIFY_TYPE_QUERY_DATA = 0; // 0 Notify to pull
        int NOTIFY_TYPE_UPDATE_ITEM = 1;  // 1 update single data

        int ItemTheme_ServiceEntry = 1;
        int ItemTheme_ServiceTodos = 2;
        int ItemTheme_ServiceMulti = 3;

        int Tag_Type_Default = 0;
        int Tag_Type_New = 1;
        int Tag_Type_Hot = 2;

        String EventBus_Action_Refresh_UI = "EventBus_Action_Refresh_UI_LandingPage";
        String EventBus_Action_Update_Notification_Tips = "EventBus_Action_Update_Notification_Tips";

        String TAG_LANDING_PAGE_GET_ALL_DATA = "tag_landing_page_get_all_data_work_request";
        String TAG_LANDING_PAGE_GET_ALL_DATA_INIT_TASK_CHAIN = "tag_landing_page_get_all_data_work_request_init_task_chain";

        String CONTROLLER_CALLING = "calling";
        String CONTROLLER_NOTIFICATION = "notification";
        String CONTROLLER_WALLET = "wallet";

        int SUB_BUSINESS_TYPE_CALLING = 1;//calling
        int SUB_BUSINESS_TYPE_SYNC_CONTACTS = 2;//sync contacts
        int SUB_BUSINESS_TYPE_TELL_FRIENDS = 3;//tell friends

        int THEME_SERVICE_ENTRY = 1;
        int THEME_SERVICE_TODOS = 2;
        int THEME_SERVICE_MULTI = 3;
    }

    public interface Translation {
        String Event_Action = "action_translation";
        String Key_Ext_Text = "text";
        String Key_Ext_Audio_Url = "audioUrl";
        String Key_Ext_Audio_Duration = "audioDuration";
        String Key_Ext_Translate_Ret = "ret";
        String Audio_Wave_Json = "[0.043394558,0.04527869,0.06686595,0.06598701,0.10612857,0.066057146,0.043077964,0.043459527,0.07219048,0.058224604,0.053626236,0.054171626,0.05321154,0.06833905,0.039058927,0.025716882,0.104952976,0.122489795,0.09398363,0.07145113,0.07483333,0.051885203,0.070731774,0.13642499,0.05275905,0.31283116,0.07704958,0.06267143,0.06834254,0.16505158,0.038630076,0.04365079,0.062632546,0.06094898,0.07350844,0.052353226,0.06642939,0.044840682,0.055878434,0.0664771,0.07765714,0.039094843,0.048166677,0.16236134,0.20691964,0.09752455,0.061941966,0.054265305,0.048346937,0.032492965,0.07882908,0.09277778,0.10303411,0.06825633,0.066281155,0.069291666,0.043707144,0.11480519,0.06319767,0.12901786,0.06492655,0.20214286,0.0955241,0.0938978,0.15891667,0.073725924,0.15788887,0.06554928,0.09130036,0.057919733,0.09162883,0.08437756,0.10666852,0.10535774,0.13851824,0.062332172,0.07484018,0.16637924,0.15704082,0.18373469,0.23270714,0.15567935,0.039332055,0.108296424,0.21706006,0.16500953,0.1080907,0.11969967,0.1602738,0.15935715,0.097108155,0.103285715,0.19592063,0.15201107,0.15936999,0.338873,0.14088571,0.1484477,0.04528017,0.08738462]";

    }

    public interface MP_Params {
        String KEY_MP_PARAMS = "MP_PARAMS";
        String KEY_LANDSCAPE = "landscape";
        String KEY_FROM = "from";
        String KEY_APP_ID = "appId";
        String KEY_APP_VERSION = "appVersion";
        String KEY_PAGE_URL = "pageUrl";

        int FORCE_LANDSCAPE_TRUE = 1; //横屏
        int FORCE_LANDSCAPE_FALSE = 0; //不做处理
        int AUTO_LANDSCAPE = 2; // 当前小程序配2，跟随上一个小程序的横竖屏状态

        String KEY_SHOW_GLOBAL = "showGlobal";
        int VALUE_SHOW_GLOBAL = 1;
        String KEY_DARK_MODE = "darkMode";

        @StringDef({
                DarkMode.VALUE_DARK_MODE,
                DarkMode.VALUE_LIGHT_MODE,
                DarkMode.VALUE_NIGHT_MODE
        })
        @interface DarkMode {
            String VALUE_DARK_MODE = "2";
            String VALUE_LIGHT_MODE = "0";
            String VALUE_NIGHT_MODE = "1";
        }

    }

    public interface GroupConstant {
        String KEY_RESTRICTED_BY_USERS = "restrictedByUsers";
        String KEY_RESTRICTED_BY_USERS_GROUP_ID = "restrictedByUsersGroupId";
        String KEY_HAS_SHOW_PRIVACY_SETTING_ADDED_BY_SOMEONE_DIALOG = "showPrivacySettingAddedBySomeoneDialog";
        String KEY_PRIVACY_SETTING_ADDED_BY_SOMEONE_SENDER = "privacySettingAddedBySomeoneSender";
        String KEY_HAS_SHOW_PRIVACY_SETTING_TIP = "showPrivacySettingTip";
    }
}
